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.x...
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)