-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
15.0.2.Final
-
None
If a node joins a cache with a consistent strategy during a partition, an NPE is thrown.
Exception.java
18:18:44.354 [jgroups-6,jbolina-thinkpadp1gen2-39962] WARN org.infinispan.CLUSTER - ISPN000071: Caught exception when handling command TopologyJoinCommand{cacheName='org.infinispan.LOCKS', origin=jbolina-thinkpadp1gen2-14249, joinInfo=CacheJoinInfo{consistentHashFactory=org.infinispan.distribution.ch.impl.SyncReplicatedConsistentHashFactory@43198721, numSegments=256, numOwners=2, timeout=240000, cacheMode=REPL_SYNC, persistentUUID=06884574-a933-418c-9a97-7fbb09301741, persistentStateChecksum=Optional.empty, capacityFactor=1.0}, viewId=5} java.lang.NullPointerException: Cannot invoke "org.infinispan.distribution.ch.ConsistentHash.getNumSegments()" because "stableCH" is null at org.infinispan.topology.ClusterTopologyManagerImpl.distLostDataCheck(ClusterTopologyManagerImpl.java:792) at org.infinispan.partitionhandling.impl.PreferConsistencyStrategy.onJoin(PreferConsistencyStrategy.java:64) at org.infinispan.topology.ClusterCacheStatus.doJoin(ClusterCacheStatus.java:747) at org.infinispan.topology.ClusterTopologyManagerImpl.lambda$handleJoin$4(ClusterTopologyManagerImpl.java:265) at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:684) at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:662) at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2200) at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:144) at org.infinispan.topology.ClusterTopologyManagerImpl.lambda$handleJoin$5(ClusterTopologyManagerImpl.java:265) at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2341) at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:144) at org.infinispan.topology.ClusterTopologyManagerImpl.handleJoin(ClusterTopologyManagerImpl.java:257) at org.infinispan.commands.topology.CacheJoinCommand.invokeAsync(CacheJoinCommand.java:46) at org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler$ReplicableCommandRunner.run(GlobalInboundInvocationHandler.java:156) at org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler.handleReplicableCommand(GlobalInboundInvocationHandler.java:133) at org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler.handleFromCluster(GlobalInboundInvocationHandler.java:79) at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processRequest(JGroupsTransport.java:1518) at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processMessage(JGroupsTransport.java:1445) at org.infinispan.remoting.transport.jgroups.JGroupsTransport$ChannelCallbacks.up(JGroupsTransport.java:1640) at org.jgroups.JChannel.up(JChannel.java:726) at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:940) at org.jgroups.protocols.FRAG2.up(FRAG2.java:139) at org.jgroups.protocols.FlowControl.up(FlowControl.java:253) at org.jgroups.protocols.FlowControl.up(FlowControl.java:261) at org.jgroups.protocols.pbcast.GMS.up(GMS.java:848) at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:225) at org.jgroups.protocols.UNICAST3.deliverMessage(UNICAST3.java:1134) at org.jgroups.protocols.UNICAST3.addMessage(UNICAST3.java:872) at org.jgroups.protocols.UNICAST3.handleDataReceived(UNICAST3.java:854) at org.jgroups.protocols.UNICAST3.up(UNICAST3.java:466) at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:672) at org.jgroups.protocols.VERIFY_SUSPECT2.up(VERIFY_SUSPECT2.java:105) at org.jgroups.protocols.FailureDetection.up(FailureDetection.java:180) at org.jgroups.protocols.FD_SOCK2.up(FD_SOCK2.java:190) at org.jgroups.protocols.MERGE3.up(MERGE3.java:274) at org.jgroups.protocols.Discovery.up(Discovery.java:296) at org.jgroups.stack.Protocol.up(Protocol.java:341) at org.jgroups.protocols.TP.passMessageUp(TP.java:1184) at org.jgroups.util.SubmitToThreadPool$SingleMessageHandler.run(SubmitToThreadPool.java:107) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583)
Since the cache utilizes a consistent strategy, we shouldn't allow the node to join. We need to update and throw a proper exception.
- is caused by
-
ISPN-15191 Cache startup failures on individual nodes can cause other caches to enter DEGRADED mode on restart
- Resolved