Bug 1388888

Summary: [GSS] LIRS Eviction with local cache under high load fail with a NullPointerException at BoundedEquivalentConcurrentHashMapV8.java:1414
Product: [JBoss] JBoss Data Grid 6 Reporter: wfink
Component: Embedded, InfinispanAssignee: Tristan Tarrant <ttarrant>
Status: VERIFIED --- QA Contact: Martin Gencur <mgencur>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.6.1CC: jdg-bugs, jsenko, vjuranek, wburns
Target Milestone: DR1   
Target Release: 6.6.2   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1374440    

Description wfink 2016-10-26 11:23:28 UTC
Description of problem:

NullPointerException occured some times during heavy load. Since it only seems to occur during heavy load and that LIRSEvictionPolicy is involved, we suspect that it has something to do with the number of entries in the cache.

The configuration is:

 <namedCache name="myCache">
        <transaction transactionMode="NON_TRANSACTIONAL" />
        <eviction strategy="LIRS" maxEntries="10000" />
        <expiration maxIdle="250000" lifespan="600000" wakeUpInterval="10000" />
    </namedCache>

This unresolved case https://issues.jboss.org/browse/ISPN-6366 might be related.



Stack trace example:

ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (pool-9-thread-17) ISPN000136: Error executing command PutKeyValueCommand, writing keys [9c7708a2-18e9-4b3f-9f62-c9fd702a241b]: java.lang.NullPointerException
	at org.infinispan.commons.util.concurrent.jdk8backported.BoundedEquivalentConcurrentHashMapV8$LIRSEvictionPolicy.findIfEntriesNeedEvicting(BoundedEquivalentConcurrentHashMapV8.java:1414) [infinispan-commons-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
	at org.infinispan.commons.util.concurrent.jdk8backported.BoundedEquivalentConcurrentHashMapV8.compute(BoundedEquivalentConcurrentHashMapV8.java:3534) [infinispan-commons-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
	at org.infinispan.container.DefaultDataContainer$BoundedEquivalentConcurrentExtendedMap.putAndActivate(DefaultDataContainer.java:611) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.container.DefaultDataContainer.put(DefaultDataContainer.java:191) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.container.entries.ReadCommittedEntry.commit(ReadCommittedEntry.java:168) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.statetransfer.CommitManager.commit(CommitManager.java:98) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.interceptors.locking.ClusteringDependentLogic$LocalLogic.commitEntry(ClusteringDependentLogic.java:239) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.interceptors.EntryWrappingInterceptor.commitContextEntry(EntryWrappingInterceptor.java:349) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.interceptors.EntryWrappingInterceptor.commitEntryIfNeeded(EntryWrappingInterceptor.java:567) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.interceptors.EntryWrappingInterceptor.commitContextEntries(EntryWrappingInterceptor.java:326) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:400) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.interceptors.EntryWrappingInterceptor.setSkipRemoteGetsAndInvokeNextForDataCommand(EntryWrappingInterceptor.java:454) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.interceptors.EntryWrappingInterceptor.visitPutKeyValueCommand(EntryWrappingInterceptor.java:188) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitPutKeyValueCommand(AbstractLockingInterceptor.java:49) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.interceptors.CacheMgmtInterceptor.updateStoreStatistics(CacheMgmtInterceptor.java:182) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:168) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:105) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:74) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:43) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:336) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1610) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.CacheImpl.putInternal(CacheImpl.java:1079) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.CacheImpl.put(CacheImpl.java:1070) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.CacheImpl.put(CacheImpl.java:1655) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]
	at org.infinispan.CacheImpl.put(CacheImpl.java:253) [infinispan-core-6.4.0.Final-redhat-4-bz-1316132.jar:6.4.0.Final-redhat-4]

Comment 2 William Burns 2016-10-28 15:39:28 UTC
PR: https://github.com/infinispan/jdg/pull/1033