[infinispan-issues] [JBoss JIRA] (ISPN-6928) NPE in BoundedEquivalentConcurrentHashMapV8$LIRSEvictionPolicy
William Burns (JIRA)
issues at jboss.org
Wed Dec 21 09:32:00 EST 2016
[ https://issues.jboss.org/browse/ISPN-6928?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13341264#comment-13341264 ]
William Burns commented on ISPN-6928:
-------------------------------------
[~tmeagher] & [~crogman] I think the issue may still be present. However it is for sure gone with the latest 9.0.Beta1 or newer build as we completely rewrote eviction related code. If however the issue persists and cannot be handled and you need to stay on 8.2, I would suggest using LRU for your eviction algorithm as it will not have this problem.
> 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
(v7.2.3#72005)
More information about the infinispan-issues
mailing list