]
William Burns commented on ISPN-9508:
-------------------------------------
I can confirm this is caused by a topology change occuring during a put all command when a
store is present.
By just adding
{code}
builderUsed.persistence()
.addStore(DummyInMemoryStoreConfigurationBuilder.class)
.shared(true)
.storeName(PutMapCommandStressTest.class.toString());
{code}
to the PutMapCommandStressTest I was able to reproduce the same NPE1
{code}
org.infinispan.commons.CacheException: java.lang.NullPointerException
at
org.infinispan.interceptors.impl.InvocationContextInterceptor.rethrowException(InvocationContextInterceptor.java:134)
at
org.infinispan.interceptors.impl.InvocationContextInterceptor.lambda$new$0(InvocationContextInterceptor.java:62)
at
org.infinispan.interceptors.InvocationExceptionFunction.apply(InvocationExceptionFunction.java:25)
at
org.infinispan.interceptors.impl.QueueAsyncInvocationStage.invokeQueuedHandlers(QueueAsyncInvocationStage.java:118)
at
org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:81)
at
org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:30)
at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760)
at
java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736)
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962)
at
org.infinispan.util.concurrent.CommandAckCollector$SegmentBasedCollector.checkCompleted(CommandAckCollector.java:474)
at
org.infinispan.util.concurrent.CommandAckCollector$SegmentBasedCollector.backupAck(CommandAckCollector.java:464)
at
org.infinispan.util.concurrent.CommandAckCollector.multiKeyBackupAck(CommandAckCollector.java:154)
at
org.infinispan.commands.write.BackupMultiKeyAckCommand.ack(BackupMultiKeyAckCommand.java:45)
at
org.infinispan.remoting.inboundhandler.TrianglePerCacheInboundInvocationHandler.handleBackupMultiKeyAckCommand(TrianglePerCacheInboundInvocationHandler.java:204)
at
org.infinispan.remoting.inboundhandler.TrianglePerCacheInboundInvocationHandler.handle(TrianglePerCacheInboundInvocationHandler.java:104)
at
org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler.handleCacheRpcCommand(GlobalInboundInvocationHandler.java:115)
at
org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler.handleFromCluster(GlobalInboundInvocationHandler.java:74)
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.processRequest(JGroupsTransport.java:1348)
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.processMessage(JGroupsTransport.java:1272)
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.access$300(JGroupsTransport.java:126)
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport$ChannelCallbacks.up(JGroupsTransport.java:1420)
at org.jgroups.JChannel.up(JChannel.java:816)
at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:893)
at org.jgroups.protocols.RSVP.up(RSVP.java:163)
at org.jgroups.protocols.FlowControl.up(FlowControl.java:351)
at org.jgroups.protocols.tom.TOA.up(TOA.java:119)
at org.jgroups.protocols.pbcast.GMS.up(GMS.java:873)
at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:240)
at org.jgroups.protocols.UNICAST3.deliverMessage(UNICAST3.java:1003)
at org.jgroups.protocols.UNICAST3.handleDataReceived(UNICAST3.java:729)
at org.jgroups.protocols.UNICAST3.up(UNICAST3.java:384)
at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:600)
at org.jgroups.protocols.Discovery.up(Discovery.java:269)
at org.jgroups.protocols.TP.passMessageUp(TP.java:1248)
at
org.jgroups.util.SubmitToThreadPool$SingleMessageHandler.run(SubmitToThreadPool.java:87)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Suppressed: org.infinispan.util.logging.TraceException
at
org.infinispan.interceptors.impl.SimpleAsyncInvocationStage.get(SimpleAsyncInvocationStage.java:41)
at
org.infinispan.interceptors.impl.AsyncInterceptorChainImpl.invoke(AsyncInterceptorChainImpl.java:250)
at
org.infinispan.cache.impl.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1911)
at org.infinispan.cache.impl.CacheImpl.putAll(CacheImpl.java:1494)
at org.infinispan.cache.impl.CacheImpl.putAll(CacheImpl.java:2041)
at org.infinispan.cache.impl.CacheImpl.putAll(CacheImpl.java:467)
at
org.infinispan.cache.impl.AbstractDelegatingCache.putAll(AbstractDelegatingCache.java:458)
at org.infinispan.cache.impl.EncoderCache.putAll(EncoderCache.java:690)
at
org.infinispan.commands.PutMapCommandStressTest.lambda$testStressNodesLeavingWhileMultiplePutMap$0(PutMapCommandStressTest.java:110)
at org.infinispan.commands.StressTest.lambda$forkWorkerThreads$1(StressTest.java:96)
at
org.infinispan.test.AbstractInfinispanTest$CallableWrapper.call(AbstractInfinispanTest.java:528)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 3 more
Caused by: java.lang.NullPointerException
at
org.infinispan.container.impl.InternalEntryFactoryImpl.create(InternalEntryFactoryImpl.java:62)
at
org.infinispan.container.impl.InternalEntryFactoryImpl.getValueFromCtxOrCreateNew(InternalEntryFactoryImpl.java:215)
at
org.infinispan.interceptors.impl.CacheWriterInterceptor.createMarshalledEntry(CacheWriterInterceptor.java:470)
at
org.infinispan.interceptors.impl.CacheWriterInterceptor.lambda$null$7(CacheWriterInterceptor.java:266)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
at java.util.HashMap$KeySpliterator.tryAdvance(HashMap.java:1574)
at
java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
at
java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
at
java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
at
java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
at java.lang.Iterable.forEach(Iterable.java:74)
at org.infinispan.persistence.spi.CacheWriter.writeBatch(CacheWriter.java:47)
at
org.infinispan.persistence.manager.PersistenceManagerImpl.lambda$writeBatchToAllNonTxStores$17(PersistenceManagerImpl.java:700)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at
org.infinispan.persistence.manager.PersistenceManagerImpl.writeBatchToAllNonTxStores(PersistenceManagerImpl.java:700)
at
org.infinispan.interceptors.impl.CacheWriterInterceptor.processIterableBatch(CacheWriterInterceptor.java:268)
at
org.infinispan.interceptors.impl.DistCacheWriterInterceptor.handlePutMapCommandReturn(DistCacheWriterInterceptor.java:88)
at
org.infinispan.interceptors.InvocationSuccessAction.apply(InvocationSuccessAction.java:22)
... 36 more
{code}
org.infinispan.persistence.spi.PersistenceException:
java.lang.NullPointerException
-----------------------------------------------------------------------------------
Key: ISPN-9508
URL:
https://issues.jboss.org/browse/ISPN-9508
Project: Infinispan
Issue Type: Bug
Affects Versions: 9.3.1.Final
Reporter: Sergey Chernolyas
Priority: Major
Attachments: hang_infinispan931.out, hs_err_pid17420.log, npe_server2_start.log,
server1.log, server2.log, server2.log.2018-09-11
Cache can't start.
See exception:
{noformat}
[org.infinispan.remoting.inboundhandler.NonTotalOrderPerCacheInboundInvocationHandler]
(jgroups-30,dr-opsdb01) ISPN000071: Caught exception when handling command
SingleRpcCommand{cacheName='SEGMENTS', command=PutMapCommand
....
flags=[IGNORE_RETURN_VALUES], metadata=EmbeddedExpirableMetadata{lifespan=-1, maxIdle=-1,
version=NumericVersion{version=844429225112
147}}, isForwarded=true}}: org.infinispan.persistence.spi.PersistenceException:
java.lang.NullPointerException
at
org.infinispan.persistence.rocksdb.RocksDBStore.writeBatch(RocksDBStore.java:412)
at
org.infinispan.persistence.manager.PersistenceManagerImpl.lambda$writeBatchToAllNonTxStores$17(PersistenceManagerImpl.java:604)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
at
java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at
java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at
org.infinispan.persistence.manager.PersistenceManagerImpl.writeBatchToAllNonTxStores(PersistenceManagerImpl.java:604)
at
org.infinispan.interceptors.impl.CacheWriterInterceptor.processIterableBatch(CacheWriterInterceptor.java:265)
at
org.infinispan.interceptors.impl.DistCacheWriterInterceptor.handlePutMapCommandReturn(DistCacheWriterInterceptor.java:93)
at
org.infinispan.interceptors.InvocationSuccessAction.apply(InvocationSuccessAction.java:22)
at
org.infinispan.interceptors.impl.QueueAsyncInvocationStage.invokeQueuedHandlers(QueueAsyncInvocationStage.java:118)
at
org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:81)
at
org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:30)
at
java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760)
at
java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736)
at
java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962)
at
org.infinispan.remoting.transport.AbstractRequest.complete(AbstractRequest.java:67)
at
org.infinispan.remoting.transport.impl.MultiTargetRequest.onResponse(MultiTargetRequest.java:102)
at
org.infinispan.remoting.transport.jgroups.StaggeredRequest.onResponse(StaggeredRequest.java:50)
at
org.infinispan.remoting.transport.impl.RequestRepository.addResponse(RequestRepository.java:52)
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.processResponse(JGroupsTransport.java:1370)
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.processMessage(JGroupsTransport.java:1273)
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.access$300(JGroupsTransport.java:125)
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport$ChannelCallbacks.up(JGroupsTransport.java:1418)
at org.jgroups.JChannel.up(JChannel.java:816)
at org.jgroups.fork.ForkProtocolStack.up(ForkProtocolStack.java:134)
at org.jgroups.stack.Protocol.up(Protocol.java:340)
at org.jgroups.protocols.FORK.up(FORK.java:134)
at org.jgroups.protocols.FRAG3.up(FRAG3.java:171)
at org.jgroups.protocols.FlowControl.up(FlowControl.java:343)
at org.jgroups.protocols.pbcast.GMS.up(GMS.java:865)
at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:240)
at org.jgroups.protocols.UNICAST3.deliverMessage(UNICAST3.java:1003)
at org.jgroups.protocols.UNICAST3.handleDataReceived(UNICAST3.java:729)
at org.jgroups.protocols.UNICAST3.up(UNICAST3.java:384)
at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:600)
at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:119)
at org.jgroups.protocols.FD_ALL.up(FD_ALL.java:199)
at org.jgroups.protocols.FD.up(FD.java:212)
at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:252)
at org.jgroups.protocols.Discovery.up(Discovery.java:267)
at org.jgroups.protocols.TP.passMessageUp(TP.java:1248)
at
org.jgroups.util.SubmitToThreadPool$SingleMessageHandler.run(SubmitToThreadPool.java:87)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
{noformat}