Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
Description
If a client is doing a destroy, putAll and invalidate in separate threads and the events align like this in the server: destroy then create then invalidate, the client may end up having a destroyed entry instead of an invalid entry.
This is a long standing issue with Geode (and formerly with GemFire) that a client does not create an Invalid entry in some situations. A lot of this was cleared up when we implemented concurrency controls in the cache but this one corner case remains.
Fixing this issue requires a small change in behavior for client caches in how they handle the invalidate() operation, but I think it's a change for the better.