当前位置: 首页 > 知识库问答 >
问题:

Apache Ignite-线程永远被阻塞

澹台逸明
2023-03-14

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

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

在执行上述场景后,节点A上的任何缓存查找都会被卡住,我们永远不会从IGniteCache中获得结果。

我已经编写了一个测试应用程序来重现这个问题。复制这个问题并不困难,但我已经尽力在readme.md中提供了指导

如果你仍然不清楚如何复制它,那么我可以提供一个视频记录。

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

共有1个答案

袁炳
2023-03-14

发生这种情况是因为您将IGNITECONFIGURation.SetSegmentationPolicy设置为NOOP。这意味着当节点分段时不会发生任何事情,实际上,该策略假定您将为evt_node_segmented事件创建一个侦听器,并提供自己的处理。如果不这样做,最好将其设置为stop(默认值),以便在分段后立即停止节点。这将释放所有线程。

 类似资料:
  • 在Java中,线程可以有不同的状态: 新建、可运行、阻止、等待、定时等待、终止 但是,当线程被IO阻塞时,其状态为“RUNNABLE”。我如何判断它是否被IO阻止?

  • 问题内容: 根据Java线程状态信息,调用wait()将导致线程进入BLOCKED状态。但是,这段代码将导致(在调用之后)处于等待状态的线程。 我有什么问题吗?有人可以向我解释这种行为吗?任何帮助,将不胜感激! 问题答案: 线程在等待通知。然后,它变为BLOCKED,试图重新进入同步区域,直到所有其他线程都离开。 您发布的链接中的有关部分(关于WAITING): 例如,在某个对象上调用Object

  • 问题内容: 看过很多论坛,但没有找到答案…简单的东西,用@PostLoad注释的方法永远不会被调用…通过@EntityListeners添加了侦听器,但问题仍然存在。我正在使用基于SessionFactory的配置。 问题答案: 当使用基于基础的配置时,EJB3 注释不起作用,后期加载方法将永远不会被调用。 使用Hibernate的Interceptor或事件或基于基本的配置。

  • 1)我的plist配置提供背景模式: 2) 在中,我有: 3) 我在委托中声明了协议。 4)我实现了以下方法,但它永远不会被触发。(只有当我用“XCode-”模拟获取时才有效 为什么?这是DP5测试错误吗?我应该雷达这个吗?

  • 本文向大家介绍怎么唤醒被阻塞的socket线程?相关面试题,主要包含被问及怎么唤醒被阻塞的socket线程?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 给阻塞时候缺少的资源

  • 问题内容: 基本上,我看到了一个BLOCKED线程,但它具有等待的锁: 我希望能看到而不是。另一个问题表明垃圾回收是原因,但是如果是这种情况,不是所有线程都被阻塞了吗?还有其他线程是可运行的。另外,我怎么能证明是这种情况?为什么这是观察到的行为?我不想盲目假设它是垃圾收集器,只是几天后才发现它是其他东西。 ==辅助信息== 尽管我认为这与手头的问题无关,但这是上述转储来自的代码部分。 显然,在那条