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

When LockControlCommand fails on an owner, the rollback command is not sent

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • 6.0.0.Final
    • 5.2.7.Final, 5.3.0.Final, 6.0.0.Final
    • Transactions

      If a transaction starts with a lock() operation and the lock fails on one of the owners (e.g. because of a SuspectException), the rollback command should still be sent to all the live owners.

      However, because a locked key is only registered in the affectedKeys collection after a successful lock operation (in PessimisticLockingInterceptor.acquireRemoteIfNeeded(), the rollback command is not sent to any owners.

      This is in a pessimistic cache. However, looking at the OptimisticLockingInterceptor.acquireAllLocks() code I think I see a similar problem: it's possible that a key is locked, but the write skew check fails and the key is not added to the affectedKeys collection. We should always register the key first and attempt to lock it after.

              pruivo@redhat.com Pedro Ruivo
              dberinde@redhat.com Dan Berindei (Inactive)
              Archiver:
              rhn-support-adongare Amol Dongare

                Created:
                Updated:
                Resolved:
                Archived: