Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-2316 Distributed deadlock in StateTransferInterceptor
  3. ISPN-1731

Threads waiting for key locks should not block state transfer

    XMLWordPrintable

    Details

    • Type: Sub-task
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 5.0.1.FINAL, 5.1.0.CR3
    • Fix Version/s: 5.2.0.Final
    • Component/s: State Transfer
    • Labels:
      None

      Description

      A write/lock command holds the state transfer lock for its entire duration, including while waiting to acquire key locks. Because of this, we can get a deadlock scenario:

      1. Tx1 waits for key k1 while holding the state transfer lock
      2. State transfer waits for Tx1 while blocking new write commands
      3. Tx2 waits for state transfer to end while holding the k1 lock

      The only way out of this scenario at the moment is for Tx1 to time out and fail to acquire the lock. We should make it possible to release the state transfer lock temporarily and return to waiting for the key lock after state transfer has ended.

      ISPN-1424 might make this issue obsolete.

        Attachments

          Activity

            People

            Assignee:
            dberinde@redhat.com Dan Berindei
            Reporter:
            dberinde@redhat.com Dan Berindei
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: