[infinispan-issues] [JBoss JIRA] Updated: (ISPN-582) Eviction with passivation introduces a race where entries are invisible to callers
Manik Surtani (JIRA)
jira-events at lists.jboss.org
Thu Aug 12 09:35:49 EDT 2010
[ https://jira.jboss.org/browse/ISPN-582?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Manik Surtani updated ISPN-582:
-------------------------------
Summary: Eviction with passivation introduces a race where entries are invisible to callers (was: Eviction with passivation results in java.lang.NullPointerException or failed gets)
Priority: Blocker (was: Major)
Complexity: High
This essentially causes a problem where evicted nodes are held in a separate collection until an eviction thread (or piggybacking on the current user thread) actually passivates state.
This means until the eviction thread kicks in to passivate, other threads will not find this entry either in-memory or in the cache store.
> 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
More information about the infinispan-issues
mailing list