-
Bug
-
Resolution: Done
-
Blocker
-
6.0.0.Final
-
None
The activation interceptor when doing manual eviction always removes the entry from the loader on a get. This is done even if the entry is in the data container.
Now this is fine for a single invocation. However if a concurrent evict command comes on a different thread you can get in a state where the data is neither in the dc or loader defeating the purpose of Passivation.
The following describes this scenario
t1 -> calls get retrieves value from context (dc) t2 -> calls evict retrieves value from context (dc) t2 -> passivates entry (writes entry to loader) t1 -> activates entry (removes entry from loader) t2 -> removes entry from dc
Note this doesn't affect size based eviction.