与 ignite 服务器节点连接时获取 NullPointerException

问题描述

我有多个客户端,它们在 weblogic 服务器上作为嵌入式模式开始使用,并且独立服务器节点存在于 docker 容器中。服务器节点和客户端节点都在同一台机器上。

以下是在客户端打印的例外情况。

Mar 30,2021 11:53:25 AM org.apache.ignite.logger.java.JavaLogger error
SEVERE: Exception in discovery notyfier worker thread.
java.lang.NullPointerException
    at org.apache.ignite.internal.managers.discovery.GriddiscoveryManager.addClientNode(GriddiscoveryManager.java:445)
    at org.apache.ignite.internal.processors.cache.ClusterCachesInfo.processCacheChangeRequests(ClusterCachesInfo.java:596)
    at org.apache.ignite.internal.processors.cache.ClusterCachesInfo.onCacheChangeRequested(ClusterCachesInfo.java:430)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.onCustomEvent(GridCacheProcessor.java:3827)
    at org.apache.ignite.internal.managers.discovery.GriddiscoveryManager$4.ondiscovery0(GriddiscoveryManager.java:697)
    at org.apache.ignite.internal.managers.discovery.GriddiscoveryManager$4.lambda$ondiscovery$0(GriddiscoveryManager.java:604)
    at org.apache.ignite.internal.managers.discovery.GriddiscoveryManager$discoveryMessageNotifierWorker.body0(GriddiscoveryManager.java:2667)
    at org.apache.ignite.internal.managers.discovery.GriddiscoveryManager$discoveryMessageNotifierWorker.body(GriddiscoveryManager.java:2705)
    at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
    at java.lang.Thread.run(Thread.java:748)


and below are the exceptions printed on ignite server node

[11:52:26,066][INFO][grid-nio-worker-tcp-comm-1-#25][TcpCommunicationSpi] Accepted incoming communication connection [locAddr=/127.0.0.1:47100,rmtAddr=/127.0.0.1:42966]
[11:53:14,633][INFO][grid-timeout-worker-#23][IgniteKernal] 
Metrics for local node (to disable set 'metricslogFrequency' to 0)
    ^-- Node [id=b180492a,uptime=3 days,19:10:25.322]
    ^-- H/N/C [hosts=1,nodes=7,cpus=8]
    ^-- cpu [cur=0.13%,avg=0.1%,GC=0%]
    ^-- PageMemory [pages=98848]
    ^-- Heap [used=776MB,free=89.33%,comm=4576MB]
    ^-- Off-heap [used=388MB,free=96.82%,comm=1120MB]
    ^--   sysMemPlc region [used=0MB,free=99.21%,comm=40MB]
    ^--   default region [used=387MB,free=96.78%,comm=1040MB]
    ^--   TxLog region [used=0MB,free=100%,comm=40MB]
    ^-- Outbound messages queue [size=0]
    ^-- Public thread pool [active=0,idle=0,qSize=0]
    ^-- System thread pool [active=0,idle=7,qSize=0]
[11:53:14,633][INFO][grid-timeout-worker-#23][IgniteKernal] FreeList [name=null,buckets=256,dataPages=1,reusePages=3]
[11:53:25,830][SEVERE][disco-notifier-worker-#41][GriddiscoveryManager] Exception in discovery notyfier worker thread.
java.lang.NullPointerException
    at org.apache.ignite.internal.managers.discovery.GriddiscoveryManager.addClientNode(GriddiscoveryManager.java:445)
    at org.apache.ignite.internal.processors.cache.ClusterCachesInfo.processCacheChangeRequests(ClusterCachesInfo.java:596)
    at org.apache.ignite.internal.processors.cache.ClusterCachesInfo.onCacheChangeRequested(ClusterCachesInfo.java:430)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.onCustomEvent(GridCacheProcessor.java:3827)
    at org.apache.ignite.internal.managers.discovery.GriddiscoveryManager$4.ondiscovery0(GriddiscoveryManager.java:697)
    at org.apache.ignite.internal.managers.discovery.GriddiscoveryManager$4.lambda$ondiscovery$0(GriddiscoveryManager.java:604)
    at org.apache.ignite.internal.managers.discovery.GriddiscoveryManager$discoveryMessageNotifierWorker.body0(GriddiscoveryManager.java:2667)
    at org.apache.ignite.internal.managers.discovery.GriddiscoveryManager$discoveryMessageNotifierWorker.body(GriddiscoveryManager.java:2705)
    at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
    at java.lang.Thread.run(Thread.java:748)
[11:53:25,831][SEVERE][disco-notifier-worker-#41][] Critical system error detected. Will be handled accordingly to configured handler [hnd=StopNodeOrHaltFailureHandler [tryStop=false,timeout=0,super=AbstractFailureHandler [ignoredFailureTypes=[SYstem_WORKER_BLOCKED,SYstem_CRITICAL_OPERATION_TIMEOUT]]],failureCtx=FailureContext [type=SYstem_WORKER_TERMINATION,err=java.lang.NullPointerException]]
java.lang.NullPointerException
    at org.apache.ignite.internal.managers.discovery.GriddiscoveryManager.addClientNode(GriddiscoveryManager.java:445)
    at org.apache.ignite.internal.processors.cache.ClusterCachesInfo.processCacheChangeRequests(ClusterCachesInfo.java:596)
    at org.apache.ignite.internal.processors.cache.ClusterCachesInfo.onCacheChangeRequested(ClusterCachesInfo.java:430)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.onCustomEvent(GridCacheProcessor.java:3827)
    at org.apache.ignite.internal.managers.discovery.GriddiscoveryManager$4.ondiscovery0(GriddiscoveryManager.java:697)
    at org.apache.ignite.internal.managers.discovery.GriddiscoveryManager$4.lambda$ondiscovery$0(GriddiscoveryManager.java:604)
    at org.apache.ignite.internal.managers.discovery.GriddiscoveryManager$discoveryMessageNotifierWorker.body0(GriddiscoveryManager.java:2667)
    at org.apache.ignite.internal.managers.discovery.GriddiscoveryManager$discoveryMessageNotifierWorker.body(GriddiscoveryManager.java:2705)
    at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
    at java.lang.Thread.run(Thread.java:748)
[11:53:25,833][WARNING][disco-notifier-worker-#41][FailureProcessor] No deadlocked threads detected.
[11:53:26,086][WARNING][disco-notifier-worker-#41][FailureProcessor] Thread dump at 2021/03/30 11:53:26 GMT
Thread [name="sys-#34166",id=34294,state=TIMED_WAITING,blockCnt=0,waitCnt=1]
    Lock [object=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@3e4db039,ownerName=null,ownerId=-1]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
        at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

Thread [name="sys-#34165",id=34293,ownerId=-1]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
        at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

Thread [name="tcp-disco-client-message-worker-#107",id=34285,waitCnt=96]
    Lock [object=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@3f4c221b,ownerId=-1]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
        at java.util.concurrent.LinkedBlockingDeque.pollFirst(LinkedBlockingDeque.java:522)
        at java.util.concurrent.LinkedBlockingDeque.poll(LinkedBlockingDeque.java:684)
        at o.a.i.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:7183)
        at o.a.i.i.util.worker.GridWorker.run(GridWorker.java:120)
        at o.a.i.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:7119)
        at o.a.i.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)

Thread [name="tcp-disco-sock-reader-#106",id=34284,state=RUNNABLE,waitCnt=0]
        at java.net.socketInputStream.socketRead0(Native Method)
        at java.net.socketInputStream.socketRead(SocketInputStream.java:116)
        at java.net.socketInputStream.read(SocketInputStream.java:171)
        at java.net.socketInputStream.read(SocketInputStream.java:141)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
        - locked java.io.BufferedInputStream@6cd381b3
        at o.a.i.marshaller.jdk.JdkMarshallerInputStreamWrapper.read(JdkMarshallerInputStreamWrapper.java:53)
        at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2663)
        at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2679)
        at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:3156)
        at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:862)
        at java.io.ObjectInputStream.<init>(ObjectInputStream.java:358)
        at o.a.i.marshaller.jdk.JdkMarshallerObjectInputStream.<init>(JdkMarshallerObjectInputStream.java:43)
        at o.a.i.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:137)
        at o.a.i.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:94)
        at o.a.i.i.util.IgniteUtils.unmarshal(IgniteUtils.java:10086)
        at o.a.i.spi.discovery.tcp.ServerImpl$SocketReader.body(ServerImpl.java:6246)
        at o.a.i.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)

Thread [name="tcp-disco-sock-reader-#103",id=34263,blockCnt=2,waitCnt=2]
        at java.net.socketInputStream.socketRead0(Native Method)
        at java.net.socketInputStream.socketRead(SocketInputStream.java:116)
        at java.net.socketInputStream.read(SocketInputStream.java:171)
        at java.net.socketInputStream.read(SocketInputStream.java:141)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
        - locked java.io.BufferedInputStream@215dbeb0
        at o.a.i.marshaller.jdk.JdkMarshallerInputStreamWrapper.read(JdkMarshallerInputStreamWrapper.java:53)
        at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2663)
        at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2679)
        at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:3156)
        at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:862)
        at java.io.ObjectInputStream.<init>(ObjectInputStream.java:358)
        at o.a.i.marshaller.jdk.JdkMarshallerObjectInputStream.<init>(JdkMarshallerObjectInputStream.java:43)
        at o.a.i.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:137)
        at o.a.i.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:94)
        at o.a.i.i.util.IgniteUtils.unmarshal(IgniteUtils.java:10086)
        at o.a.i.spi.discovery.tcp.ServerImpl$SocketReader.body(ServerImpl.java:6246)
        at o.a.i.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)

Thread [name="tcp-disco-sock-reader-#102",id=34262,waitCnt=0]
        at java.net.socketInputStream.socketRead0(Native Method)
        at java.net.socketInputStream.socketRead(SocketInputStream.java:116)
        at java.net.socketInputStream.read(SocketInputStream.java:171)
        at java.net.socketInputStream.read(SocketInputStream.java:141)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
        - locked java.io.BufferedInputStream@51f37d31
        at o.a.i.marshaller.jdk.JdkMarshallerInputStreamWrapper.read(JdkMarshallerInputStreamWrapper.java:53)
        at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2663)
        at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2679)
        at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:3156)
        at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:862)
        at java.io.ObjectInputStream.<init>(ObjectInputStream.java:358)
        at o.a.i.marshaller.jdk.JdkMarshallerObjectInputStream.<init>(JdkMarshallerObjectInputStream.java:43)
        at o.a.i.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:137)
        at o.a.i.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:94)
        at o.a.i.i.util.IgniteUtils.unmarshal(IgniteUtils.java:10086)
        at o.a.i.spi.discovery.tcp.ServerImpl$SocketReader.body(ServerImpl.java:6246)
        at o.a.i.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)

Thread [name="tcp-disco-client-message-worker-#101",id=34249,waitCnt=384]
    Lock [object=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@76db00a4,ownerId=-1]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
        at java.util.concurrent.LinkedBlockingDeque.pollFirst(LinkedBlockingDeque.java:522)
        at java.util.concurrent.LinkedBlockingDeque.poll(LinkedBlockingDeque.java:684)
        at o.a.i.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:7183)
        at o.a.i.i.util.worker.GridWorker.run(GridWorker.java:120)
        at o.a.i.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:7119)
        at o.a.i.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)

Thread [name="tcp-disco-client-message-worker-#100",id=34248,waitCnt=386]
    Lock [object=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@713eab82,ownerId=-1]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
        at java.util.concurrent.LinkedBlockingDeque.pollFirst(LinkedBlockingDeque.java:522)
        at java.util.concurrent.LinkedBlockingDeque.poll(LinkedBlockingDeque.java:684)
        at o.a.i.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:7183)
        at o.a.i.i.util.worker.GridWorker.run(GridWorker.java:120)
        at o.a.i.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:7119)
        at o.a.i.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)

Thread [name="tcp-disco-sock-reader-#98",id=34246,waitCnt=0]
        at java.net.socketInputStream.socketRead0(Native Method)
        at java.net.socketInputStream.socketRead(SocketInputStream.java:116)
        at java.net.socketInputStream.read(SocketInputStream.java:171)
        at java.net.socketInputStream.read(SocketInputStream.java:141)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
        - locked java.io.BufferedInputStream@778acb44
        at o.a.i.marshaller.jdk.JdkMarshallerInputStreamWrapper.read(JdkMarshallerInputStreamWrapper.java:53)
        at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2663)
        at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2679)
        at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:3156)
        at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:862)
        at java.io.ObjectInputStream.<init>(ObjectInputStream.java:358)
        at o.a.i.marshaller.jdk.JdkMarshallerObjectInputStream.<init>(JdkMarshallerObjectInputStream.java:43)
        at o.a.i.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:137)
        at o.a.i.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:94)
        at o.a.i.i.util.IgniteUtils.unmarshal(IgniteUtils.java:10086)
        at o.a.i.spi.discovery.tcp.ServerImpl$SocketReader.body(ServerImpl.java:6246)
        at o.a.i.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)

Thread [name="tcp-disco-client-message-worker-#97",id=34236,waitCnt=446]
    Lock [object=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@597a2b31,ownerId=-1]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
        at java.util.concurrent.LinkedBlockingDeque.pollFirst(LinkedBlockingDeque.java:522)
        at java.util.concurrent.LinkedBlockingDeque.poll(LinkedBlockingDeque.java:684)
        at o.a.i.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:7183)
        at o.a.i.i.util.worker.GridWorker.run(GridWorker.java:120)
        at o.a.i.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:7119)
        at o.a.i.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)

Thread [name="srvc-deploy-#45",id=68,state=WAITING,blockCnt=1,waitCnt=162]
    Lock [object=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@31b3cad4,ownerId=-1]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

Thread [name="exchange-worker-#43",id=66,waitCnt=65757]
    Lock [object=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@10c2f74d,ownerId=-1]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
        at java.util.concurrent.LinkedBlockingDeque.pollFirst(LinkedBlockingDeque.java:522)
        at java.util.concurrent.LinkedBlockingDeque.poll(LinkedBlockingDeque.java:684)
        at o.a.i.i.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body0(GridCachePartitionExchangeManager.java:2613)
        at o.a.i.i.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:2540)
        at o.a.i.i.util.worker.GridWorker.run(GridWorker.java:120)
        at java.lang.Thread.run(Thread.java:748)

Thread [name="ignite-update-notifier-timer",id=65,waitCnt=5705]
    Lock [object=java.util.TaskQueue@18e965c7,ownerId=-1]
        at java.lang.Object.wait(Native Method)
        at java.util.TimerThread.mainLoop(Timer.java:552)
        at java.util.TimerThread.run(Timer.java:505)

Thread [name="upd-ver-checker",id=64,waitCnt=65592]
        at java.lang.Thread.sleep(Native Method)
        at o.a.i.i.processors.cluster.GridUpdateNotifier$1.run(GridUpdateNotifier.java:115)
        at java.lang.Thread.run(Thread.java:748)

Thread [name="disco-event-worker-#42",id=63,waitCnt=203191]
    Lock [object=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2286f22c,ownerId=-1]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
        at o.a.i.i.managers.discovery.GriddiscoveryManager$discoveryWorker.body0(GriddiscoveryManager.java:2856)
        at o.a.i.i.managers.discovery.GriddiscoveryManager$discoveryWorker.body(GriddiscoveryManager.java:2825)
        at o.a.i.i.util.worker.GridWorker.run(GridWorker.java:120)

Thread [name="tcp-disco-msg-worker-#2",id=61,blockCnt=3,waitCnt=32527715]
        at java.lang.String.intern(Native Method)
        at java.io.ObjectStreamField.<init>(ObjectStreamField.java:107)
        at java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:805)
        at java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:891)
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1857)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
        at java.io.ObjectInputStream.readobject0(ObjectInputStream.java:1573)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
        at java.io.ObjectInputStream.readobject0(ObjectInputStream.java:1573)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
        at java.io.ObjectInputStream.readobject0(ObjectInputStream.java:1573)
        at java.io.ObjectInputStream.readobject(ObjectInputStream.java:431)
        at java.util.ArrayList.readobject(ArrayList.java:797)
        at sun.reflect.GeneratedMethodAccessor8.invoke(UnkNown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at java.io.ObjectStreamClass.invokeReadobject(ObjectStreamClass.java:1170)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2178)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
        at java.io.ObjectInputStream.readobject0(ObjectInputStream.java:1573)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
        at java.io.ObjectInputStream.readobject0(ObjectInputStream.java:1573)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
        at java.io.ObjectInputStream.readobject0(ObjectInputStream.java:1573)
        at java.io.ObjectInputStream.readobject(ObjectInputStream.java:431)
        at o.a.i.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:139)
        at o.a.i.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:94)
        at o.a.i.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:161)
        at o.a.i.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:82)
        at o.a.i.i.util.IgniteUtils.unmarshal(IgniteUtils.java:10141)
        at o.a.i.spi.discovery.tcp.messages.TcpdiscoveryCustomEventMessage.message(TcpdiscoveryCustomEventMessage.java:81)
        at o.a.i.spi.discovery.tcp.ServerImpl$RingMessageWorker.processCustomMessage(ServerImpl.java:5478)
        at o.a.i.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2837)
        at o.a.i.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2611)
        at o.a.i.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:7188)
        at o.a.i.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2700)
        at o.a.i.i.util.worker.GridWorker.run(GridWorker.java:120)
        at o.a.i.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:7119)
        at o.a.i.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)

Thread [name="main",id=1,waitCnt=6]
    Lock [object=java.util.concurrent.CountDownLatch$Sync@20e2f504,ownerId=-1]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
        at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231)
        at o.a.i.startup.cmdline.CommandLinestartup.main(CommandLinestartup.java:334)
[11:53:26,086][SEVERE][disco-notifier-worker-#41][] JVM will be halted immediately due to the failure: [failureCtx=FailureContext [type=SYstem_WORKER_TERMINATION,err=java.lang.NullPointerException]]

    

解决方法

我认为如果您执行这样的代码,可能会发生这种情况:

function isErrorResponse(response: Response<any>): response is ErrorResponse {
  return !!response[0];
}

;(async () => {
  const response = await getUser('1');

  if (isErrorResponse(response)) {
    const [err] = response; // I need to destructure here
    err.message; // This still works
    return
  }
  const [,user] = response; // Another destructure
  console.log(user.name); // Now this works too
  
})();

例如您从运行的 Ignite 实例中获得一个缓存,更改其名称,然后一个新的客户端节点出现。请检查您从不这样做,而是始终创建或至少克隆一个新的 inputCache = ignite.cache(inputCacheName); CacheConfiguration configuration = inputCache.getConfiguration(CacheConfiguration.class); outputCache = ignite.getOrCreateCache(configuration.setName("cache_" + ctx.name()));

不幸的是,缓存配置是可变的,我们不会检查它们是否被更改。