-
Bug
-
Resolution: Obsolete
-
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
-