Details
-
Bug
-
Resolution: Done
-
Major
-
8.1.0.Final
-
None
Description
Because ClusterExpirationManager.handleLifespanExpired() doesn't lock the entry and the value is actually read in the async thread, the created RemoveExpiredCommand sometimes uses a newer value written by another thread.
Could be fixed by using DataContainer.compute() to check expiration and create the RemoveExpirationCommand.