[infinispan-issues] [JBoss JIRA] (ISPN-6928) NPE in BoundedEquivalentConcurrentHashMapV8$LIRSEvictionPolicy

Tim Meagher (JIRA) issues at jboss.org
Thu Aug 4 13:36:00 EDT 2016


Tim Meagher created ISPN-6928:
---------------------------------

             Summary: NPE in BoundedEquivalentConcurrentHashMapV8$LIRSEvictionPolicy
                 Key: ISPN-6928
                 URL: https://issues.jboss.org/browse/ISPN-6928
             Project: Infinispan
          Issue Type: Bug
    Affects Versions: 8.2.2.Final
            Reporter: Tim Meagher


Receiving a NullPointerException out of infinispan with the following stack (using 8.2.2 final):


{noformat}
java.lang.NullPointerException
	at org.infinispan.commons.util.concurrent.jdk8backported.BoundedEquivalentConcurrentHashMapV8$LIRSEvictionPolicy.findIfEntriesNeedEvicting(BoundedEquivalentConcurrentHashMapV8.java:1531)
	at org.infinispan.commons.util.concurrent.jdk8backported.BoundedEquivalentConcurrentHashMapV8.compute(BoundedEquivalentConcurrentHashMapV8.java:3657)
	at org.infinispan.container.DefaultDataContainer.put(DefaultDataContainer.java:227)
	at org.infinispan.container.entries.ReadCommittedEntry.commit(ReadCommittedEntry.java:168)
	at org.infinispan.statetransfer.CommitManager.commit(CommitManager.java:100)
	at org.infinispan.interceptors.locking.ClusteringDependentLogic$LocalLogic.commitSingleEntry(ClusteringDependentLogic.java:299)
	at org.infinispan.interceptors.locking.ClusteringDependentLogic$AbstractClusteringDependentLogic.commitEntry(ClusteringDependentLogic.java:115)
	at org.infinispan.interceptors.EntryWrappingInterceptor.commitContextEntry(EntryWrappingInterceptor.java:479)
	at org.infinispan.interceptors.EntryWrappingInterceptor.commitEntryIfNeeded(EntryWrappingInterceptor.java:655)
	at org.infinispan.interceptors.EntryWrappingInterceptor.commitContextEntries(EntryWrappingInterceptor.java:465)
	at org.infinispan.interceptors.EntryWrappingInterceptor.visitPrepareCommand(EntryWrappingInterceptor.java:108)
	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:176)
	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
	at org.infinispan.interceptors.NotificationInterceptor.visitPrepareCommand(NotificationInterceptor.java:37)
	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:176)
	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
	at org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.invokeNextAndCommitIf1Pc(AbstractTxLockingInterceptor.java:93)
	at org.infinispan.interceptors.locking.PessimisticLockingInterceptor.visitPrepareCommand(PessimisticLockingInterceptor.java:100)
	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:176)
	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
	at org.infinispan.interceptors.TxInterceptor.invokeNextInterceptorAndVerifyTransaction(TxInterceptor.java:158)
	at org.infinispan.interceptors.TxInterceptor.visitPrepareCommand(TxInterceptor.java:145)
	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:176)
	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
	at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:113)
	at org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:112)
	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:176)
	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
	at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:114)
	at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:83)
	at org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:112)
	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:176)
	at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:335)
	at org.infinispan.transaction.impl.TransactionCoordinator.commit(TransactionCoordinator.java:157)
	at org.infinispan.transaction.xa.TransactionXaAdapter.commit(TransactionXaAdapter.java:114)
	at org.infinispan.transaction.tm.DummyTransaction.finishResource(DummyTransaction.java:401)
	at org.infinispan.transaction.tm.DummyTransaction.commitResources(DummyTransaction.java:448)
	at org.infinispan.transaction.tm.DummyTransaction.runCommit(DummyTransaction.java:321)
	at org.infinispan.transaction.tm.DummyTransaction.commit(DummyTransaction.java:108)
	at org.infinispan.transaction.tm.DummyBaseTransactionManager.commit(DummyBaseTransactionManager.java:73)
	at org.infinispan.cache.impl.CacheImpl.tryCommit(CacheImpl.java:1722)
	at org.infinispan.cache.impl.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1679)
	at org.infinispan.cache.impl.CacheImpl.putInternal(CacheImpl.java:1121)
	at org.infinispan.cache.impl.CacheImpl.put(CacheImpl.java:1111)
	at org.infinispan.cache.impl.CacheImpl.put(CacheImpl.java:1742)
	at org.infinispan.cache.impl.CacheImpl.put(CacheImpl.java:248)
{noformat}

Looks very similar to this issue: https://issues.jboss.org/browse/ISPN-6366
However, not sure if it's a duplicate as our configuration is nothing like that mentioned & the line number in the stack is one off.
Not sure what version the other issue was reported against though (and the line number in the stack on the mentioned issue is a null check in 8.2.2 final).


Configuration for the cache with this problem is included below:


{noformat}
<?xml version="1.0" encoding="UTF-8"?>

<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="urn:infinispan:config:8.2 http://www.infinispan.org/schemas/infinispan-config-8.2.xsd
                        urn:infinispan:config:store:jdbc:8.0
                        http://www.infinispan.org/schemas/infinispan-cachestore-jdbc-config-8.0.xsd"
	xmlns="urn:infinispan:config:8.2">
	
	<cache-container name="default" default-cache="default" statistics="true">
		<serialization>
      <advanced-externalizer class="com.lavastorm.lae.service.element.compile.storage.infinispan.impl.CompiledStorageNodeExternalizer"/>
      <advanced-externalizer class="com.lavastorm.lae.service.element.resolution.storage.infinispan.impl.ResolutionCacheEntryExternalizer"/>
    </serialization>
		<jmx duplicate-domains="true"/>
		<!-- cache configuration for non repository usages -->
		<!-- resolved-element cache -->
		<local-cache-configuration name="resolvedElementConfig">
			<transaction 
					transaction-manager-lookup="org.infinispan.transaction.lookup.DummyTransactionManagerLookup"
					locking="PESSIMISTIC" />	
					
			<!-- max 2k in memory entries -->
			<eviction thread-policy="DEFAULT" max-entries="2000" strategy="LIRS" />
			<persistence passivation="true">
				
			<!-- max 10k entries on disk -->
			<file-store fetch-state="false" read-only="false" purge="true" path="${ls.home}/data/webapp/cache/infinispan" max-entries="10000"/>
			</persistence>
		</local-cache-configuration>
		
		<local-cache name="resolvedElements" configuration="resolvedElementConfig" statistics="true"/>

	
</infinispan>

{noformat}





--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the infinispan-issues mailing list