Details
Description
Due to race between timeout worker and client-connector workers there can be situations when some transaction is processed by client-connector worker and concurrently rolled back by timeout worker. In this case, threadMap can still contain the reference to this transaction but the transaction state is already set to "ROLLED_BACK", for such a state client-connector worker does not suspend the transaction and can proceed to the next request, which uses another transaction. When resuming this second transaction there is an exception thrown, since IgniteTxManager#threadMap is not cleared yet for the current worker thread:
org.apache.ignite.client.ClientException: Ignite failed to process request [103]: Thread already has started a transaction. (server status code [1])
Attachments
Issue Links
- links to