[
https://jira.jboss.org/browse/ISPN-582?page=com.atlassian.jira.plugin.sys...
]
Manik Surtani commented on ISPN-582:
------------------------------------
Note that as a part of this, the config combo of LIRS + Passivation is now disallowed.
Detailed discussion on this mail list thread:
http://lists.jboss.org/pipermail/infinispan-dev/2010-August/006135.html
Eviction with passivation introduces a race where entries are
invisible to callers
----------------------------------------------------------------------------------
Key: ISPN-582
URL:
https://jira.jboss.org/browse/ISPN-582
Project: Infinispan
Issue Type: Bug
Components: Eviction
Affects Versions: 4.1.0.CR2
Reporter: Paul Nardone
Assignee: Manik Surtani
Priority: Blocker
Fix For: 4.1.0.CR3
Attachments: InfinispanTest4.java
Setup a simple case with a cacheloader set with passivation enabled and and eviction
policy of LRU and max enteries 1
-Put first value to cache
-Put second value to the cache
-Eviction runs
org.infinispan.interceptors.PassivationInterceptor#visitEvictCommand attempts to
passivate the first value but dataContainer.get(key); returns NULL as it appears the value
has already been removed from the data container, which is then passed into the cache
store resulting in the NPE
Behaviour is subtly different if EvictionThreadPolicy.DEFAULT is used as the NPE is not
immediately obvious but the operation still fails
With EvictionStrategy.LIRS similar issues arrise, the bug is not apparent on the second
put operation but when get is executed NULL is returned
This only seems to occur with Passivation enabled
I encountered this when making heavy use of Lucene InfinispanDirectory and traced it
through to this issue.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira