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

    • Sub-task
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Done
    • 5.0.1.FINAL, 5.1.0.CR3
    • 5.2.0.Final
    • State Transfer
    • 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

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

            Dates

              Created:
              Updated:
              Resolved: