-
Bug
-
Resolution: Done
-
Critical
-
5.2.7.Final, 5.3.0.Final, 6.0.0.Final
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.
- blocks
-
ISPN-3736 Backport to 5.2.x for EAP 6.3
- Closed