Details
-
Bug
-
Resolution: Done
-
Major
-
5.3.0.Final, 6.0.0.Alpha4
-
None
-
None
Description
conditional operation can be applied in the backup nodes. consider the following scenario:
k=v1 tx1: write on key k value v2 tx1: prepare and sends the commit... primary owner already applied v2 tx2: [replace(k, v1, v3)] starts and reads from primary owner v2. ignoreReturnValue is false because the operation has failed to change k. tx2: sends the prepare. in the backup owner, if perform oldValue.equals(value). however, the oldValue == v1 and value == v1.
the operation changed the key in the backup owner creating inconsistency.