]
Will Burns updated ISPN-11079:
------------------------------
Status: Pull Request Sent (was: Open)
Git Pull Request:
Cluster Expiration and Optimistic Transactions write skew issues
----------------------------------------------------------------
Key: ISPN-11079
URL:
https://issues.redhat.com/browse/ISPN-11079
Project: Infinispan
Issue Type: Bug
Components: Expiration
Reporter: Will Burns
Priority: Major
Fix For: 10.1.0.Final, 11.0.0.Final
Optimistic write skew and clustered expiration can have some weird issues
One such is:
The issue is the following:
1. RemoveExpiredCommand reads the expired from the container with version 1 and puts in
its context
2. PutKeyValueCommand sees nothing in container due to expired and adds a new entry with
version 1 in its context
3. Put gets the lock and replaces the value
4. RemoveExpiredCommand attempts to run and because it saw the old value the lifespans
still match (if different)
5. Then the write skew passes for the remove expired command since the value in container
and its context both have version 1
To workaround this for now we should prevent a get of an expired entry from returning
early when using optimistic transactions.