Apache Ignite - 线程永远被阻止

时间:2016-09-22 18:36:00

标签: gridgain ignite

我们有一个由2个节点A和A组成的集群。乙

如果我们阻止节点A上的线程执行(我是通过远程连接到我的VM并设置断点来实现的),那么节点B认为节点A是分段的(这是预期的行为)。

执行上述方案后,节点A上的任何缓存查找都会卡住,我们永远不会从IgniteCache返回结果。

我已经整理了一个测试应用程序来重现这个问题。重现这个问题有点棘手但我尽力在README.md中提供指令

如果您还不清楚如何重现它,那么我可以提供视频录制。

https://github.com/manish-panwar/ignite-thread-block-issue

1 个答案:

答案 0 :(得分:0)

这是因为您将IgniteConfiguration.setSegmentationPolicy设置为NOOP。这意味着当节点被分段时没有任何反应,实际上此策略假定您将为EVT_NODE_SEGMENTED事件创建一个侦听器并提供您自己的处理。如果您不这样做,最好将其设置为STOP(默认值),以便在分段后立即停止节点。这将释放所有线程。