Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-15732

Thin client: Tx can fail if there are concurrent tx rollbacks by timeout

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.12
    • None
    • Thin client: Fixed transaction failure after concurrent previous transaction rollback on the same worker
    • Release Notes Required

    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

          Activity

            People

              alex_pl Aleksey Plekhanov
              alex_pl Aleksey Plekhanov
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 40m
                  40m