Modshape 3.8.1 to Modeshape 4.3.0 migration
folch Jul 6, 2015 9:36 AMHi guys,
we are evaluating what are the benefits/cons to upgrade Modeshape to the latest stable version (currently 4.3.0) and doing a prototype we've found couple of problems, mainly related to Infinispan eviction.
- Issue about ClassCastException mentioned in https://developer.jboss.org/thread/260372.
To bypass the problem we have to:- Avoid using LIRS.
- Disable eviction (not really an option for production I think)
- Upgrade Infinispan version to 7.2.3 or wait Modeshape 4.4
- Issue about Nullpointer in Infinispan when evaluating eviction. Our test is trying to upload a file in paralel (20 threads) into the repository. From time to time fails with a Nullpointer.
Even if we try the following we continue seing the issue.:- Using LRU eviction
- Using NONE as eviction mechanism.
- Don't adding the eviction tag.
This is the Stacktrace (using Modeshape 4.3.0.Final and Infinispan 7.2.3:
Jul 06, 2015 2:17:30 PM org.infinispan.interceptors.InvocationContextInterceptor handleAll
ERROR: ISPN000136: Execution error
java.lang.NullPointerException
at org.infinispan.commons.util.concurrent.jdk8backported.BoundedEquivalentConcurrentHashMapV8$LIRSEvictionPolicy.findIfEntriesNeedEvicting(BoundedEquivalentConcurrentHashMapV8.java:1397)
at org.infinispan.commons.util.concurrent.jdk8backported.BoundedEquivalentConcurrentHashMapV8.compute(BoundedEquivalentConcurrentHashMapV8.java:3487)
at org.infinispan.container.DefaultDataContainer$BoundedEquivalentConcurrentExtendedMap.putAndActivate(DefaultDataContainer.java:556)
at org.infinispan.container.DefaultDataContainer.put(DefaultDataContainer.java:192)
at org.infinispan.container.entries.ReadCommittedEntry.commit(ReadCommittedEntry.java:168)
at org.infinispan.statetransfer.CommitManager.commit(CommitManager.java:98)
at org.infinispan.interceptors.locking.ClusteringDependentLogic$LocalLogic.commitSingleEntry(ClusteringDependentLogic.java:255)
at org.infinispan.interceptors.locking.ClusteringDependentLogic$AbstractClusteringDependentLogic.commitEntry(ClusteringDependentLogic.java:108)
at org.infinispan.interceptors.EntryWrappingInterceptor.commitContextEntry(EntryWrappingInterceptor.java:371)
at org.infinispan.interceptors.EntryWrappingInterceptor.commitEntryIfNeeded(EntryWrappingInterceptor.java:549)
at org.infinispan.interceptors.EntryWrappingInterceptor.commitContextEntries(EntryWrappingInterceptor.java:348)
at org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:422)
at org.infinispan.interceptors.EntryWrappingInterceptor.setSkipRemoteGetsAndInvokeNextForDataCommand(EntryWrappingInterceptor.java:453)
at org.infinispan.interceptors.EntryWrappingInterceptor.visitPutKeyValueCommand(EntryWrappingInterceptor.java:195)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitNonTxDataWriteCommand(AbstractLockingInterceptor.java:88)
at org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor.visitDataWriteCommand(NonTransactionalLockingInterceptor.java:40)
at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitPutKeyValueCommand(AbstractLockingInterceptor.java:55)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:111)
at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:44)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
at org.infinispan.interceptors.CacheMgmtInterceptor.updateStoreStatistics(CacheMgmtInterceptor.java:191)
at org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:177)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:102)
at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:71)
at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:44)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71)
at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:336)
at org.infinispan.cache.impl.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1617)
at org.infinispan.cache.impl.CacheImpl.putIfAbsentInternal(CacheImpl.java:1122)
at org.infinispan.cache.impl.CacheImpl.putIfAbsent(CacheImpl.java:1112)
at org.infinispan.cache.impl.CacheImpl.putIfAbsent(CacheImpl.java:1717)
at org.infinispan.cache.impl.CacheImpl.putIfAbsent(CacheImpl.java:283)
at org.modeshape.jcr.cache.document.WorkspaceCache.getNode(WorkspaceCache.java:244)
at org.modeshape.jcr.cache.document.NodeCacheIterator.nextNode(NodeCacheIterator.java:103)
at org.modeshape.jcr.cache.document.NodeCacheIterator.hasNext(NodeCacheIterator.java:70)
at org.modeshape.jcr.query.NodeSequence$16.hasNext(NodeSequence.java:1450)
at org.modeshape.jcr.query.NodeSequence$23.findNext(NodeSequence.java:1863)
at org.modeshape.jcr.query.NodeSequence$23.hasNext(NodeSequence.java:1849)
at org.modeshape.jcr.query.NodeSequence$23.findNext(NodeSequence.java:1863)
at org.modeshape.jcr.query.NodeSequence$23.hasNext(NodeSequence.java:1849)
at org.modeshape.jcr.query.NodeSequence$23.findNext(NodeSequence.java:1863)
at org.modeshape.jcr.query.NodeSequence$23.hasNext(NodeSequence.java:1849)
at org.modeshape.jcr.query.NodeSequence$SingleWidthBatch.<init>(NodeSequence.java:1920)
at org.modeshape.jcr.query.NodeSequence.copy(NodeSequence.java:1907)
at org.modeshape.jcr.query.engine.process.RestartableSequence.loadBatch(RestartableSequence.java:213)
at org.modeshape.jcr.query.engine.process.RestartableSequence$1.nextBatch(RestartableSequence.java:92)
at org.modeshape.jcr.query.engine.process.RestartableSequence.nextBatch(RestartableSequence.java:119)
at org.modeshape.jcr.query.JcrQueryResult$QueryResultIterator.findNextBatch(JcrQueryResult.java:257)
at org.modeshape.jcr.query.JcrQueryResult$QueryResultIterator.hasNext(JcrQueryResult.java:241)
at com.hp.exstream.hes.repository.impl.ApplicationRepository.searchApplications(ApplicationRepository.java:99)
...
What can we do? As with this issue we don't want to upgrade to Modeshape 4.3.0 as currently Modeshape 3.8.1 is pretty stable.
Thanks in advance.