Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-6928

NPE in BoundedEquivalentConcurrentHashMapV8$LIRSEvictionPolicy

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Major Major
    • None
    • 8.2.2.Final
    • None
    • None
    • Hide

      Unclear.
      Have been running without problems for a while, this just showed up out of the blue.

      Show
      Unclear. Have been running without problems for a while, this just showed up out of the blue.

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

      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)
      

      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:

      <?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>
      
      

              Unassigned Unassigned
              tmeagher_jira Tim Meagher (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: