Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-3389

Forwarded transactions can remain stale after state transfer

    XMLWordPrintable

Details

    Description

      There is a scenario where a tx started on one node, moved during state transfer, and committed on the originating node won't be removed from the new owner's tx table.

      The chain of events is as follows:

      1. New topology comes in as part of a view change.
      2. Local transaction started with the new topology ID. This transaction was started due to a LockControlCommand and has no modifications. Also important, it only has local locks.
      3. Tx forwarded to new owner before the local lock is acquired and registered with the transaction.
      4. Since the tx has only local locks and no modifications, it is only removed locally. No TxCompletion or Rollback are broadcast to the new owners.

      This key becomes unusable not due to stale locks, but because the waitForTransaction() code will see that the old tx can "potentially" lock the key.

      This easily happens with pessimistic caches, though I have seen it happen with optimistic caches (there is a delta between the transaction being created and the lock registration).

      Attachments

        Activity

          People

            dberinde@redhat.com Dan Berindei (Inactive)
            esalter@synamedia.com Erik Salter (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: