Apache Ignite:“分区交换器”中的“已检测到阻塞的系统关键线程”异常

时间:2019-07-01 17:57:06

标签: ignite

我有一个由6个节点组成的Apache Ignite集群。有时,在运行了几个小时之后,日志中记录了许多如下所示的异常,并且节点停止了运行。我不在受影响的服务中使用事件处理程序或发布/订阅处理程序。是什么导致这些异常?这是否意味着在这些错误消息中总是提到“分区交换器”线程?

 Jul 01, 2019 5:23:10 PM org.apache.ignite.logger.java.JavaLogger error
SEVERE: Blocked system-critical thread has been detected. This can lead to cluster-wide undefined behaviour [threadName=partition-exchanger, blockedFor=61s]
Jul 01, 2019 5:23:10 PM java.util.logging.LogManager$RootLogger log
SEVERE: Critical system error detected. Will be handled accordingly to configured handler [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, super=AbstractFailureHandler [ignoredFailureTypes=[SYSTEM_WORKER_BLOCKED]]], failureCtx=FailureContext [type=SYSTEM_WORKER_BLOCKED, err=class o.a.i.IgniteException: GridWorker [name=partition-exchanger, igniteInstanceName=null, finished=false, heartbeatTs=1562001729657]]]
class org.apache.ignite.IgniteException: GridWorker [name=partition-exchanger, igniteInstanceName=null, finished=false, heartbeatTs=1562001729657]
        at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance$2.apply(IgnitionEx.java:1831)
        at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance$2.apply(IgnitionEx.java:1826)
        at org.apache.ignite.internal.worker.WorkersRegistry.onIdle(WorkersRegistry.java:233)
        at org.apache.ignite.internal.util.worker.GridWorker.onIdle(GridWorker.java:297)
        at org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.lambda$new$0(ServerImpl.java:2663)
        at org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:7181)
        at org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2700)
        at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
        at org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:7119)
        at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)

我在Kubernetes管理的Linux容器上将Apache Ignite用于.Net v2.7。谢谢!

1 个答案:

答案 0 :(得分:0)

建议升级到2.7.5,因为它显示出的那些虚假错误更少。

否则,文档部分介绍了如何对其进行调整:https://apacheignite.readme.io/docs/critical-failures-handling