【问题标题】:Debugging the "safepoint" error - need theoretical OR practical to debugging JVM crashes?调试“安全点”错误 - 需要理论或实践来调试 JVM 崩溃?
【发布时间】:2012-06-06 02:52:39
【问题描述】:

我们在 AWS 上运行的 Ubuntu 服务器上发生了令人难以置信的难以捉摸的 jvm 崩溃。

  • 我们的 JVM 在抓取几个网页时崩溃。

  • 崩溃发生在“安全点”cpp 模块的第 308 行。在出现 gauranteeArmed==0 语句的阶段。

  • 我们的系统管理员已告知,在崩溃时,JVM 创建了大量线程。

  • 我们尚未在其他 Linux 或 OSX 机器中重现此错误。

  • 我们用Ning库爬了几个 网页。

相关帖子

在这些帖子中的每一个中,都观察到了来自“无处”的“安全点”相关崩溃。最有趣的是,上面的第一篇文章实际上展示了网络相关事件期间的 JVM 崩溃。

这个错误的神秘本质让我相信存在一个与线程创建和调度相关的错误,该错误是我们当前版本的 Ubuntu 特有的,涉及 java 调用它的一些并发特性或一些底层库的方式与我们的特定情况高度特殊的不兼容性。

我的问题

我的主要问题是 - 调试涉及这些“安全点”的 JVM 堆栈跟踪的最佳方法是什么,我可以从哪里开始学习处理此类错误?沿着这条线还有其他问题,但我没有看到一个通用的答案。

其次,对 aws、java、网络以及 Ubuntu 在云中的行为方式有何不同的任何见解都会在这里有用。

【问题讨论】:

  • 与“云”的一个主要区别是网络的工作方式。试试看 - 它可能与您的操作系统、java 或系统库无关。
  • 是的,这绝对是个好主意。我想知道与常规环境相比,AWS 上的网络错误会如何表现出来。
  • 更新:看来,通过告诉 ant 不要在单元测试中“分叉”jvm,该错误可能不会出现。很奇怪。甚至不确定这是否可重现……但我只是认为它可能会提供一些额外的见解。

标签: java linux amazon-web-services ning


【解决方案1】:

尝试使用最新的 JVM(6u32 或 7u4),看看它是否仍然可以重现。如果您使用的是旧版本,那么至少很有可能它已经在最新版本中得到修复。

【讨论】:

    猜你喜欢
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多