Java 调试;“安全点”;错误-调试JVM崩溃需要理论上的还是实践上的?

Java 调试;“安全点”;错误-调试JVM崩溃需要理论上的还是实践上的?,java,linux,amazon-web-services,ning,Java,Linux,Amazon Web Services,Ning,在AWS上运行的Ubuntu服务器上,发生了一个令人惊讶的难以捉摸的jvm崩溃 我们的JVM在抓取几个网页时崩溃 碰撞发生在“安全点”cpp模块的第308行。在发生gauranteeArmed==0语句的阶段 我们的系统管理员建议,在崩溃时,JVM会创建大量线程 我们没有在其他Linux或OSX设备中复制此错误 我们使用Ning库来抓取一些 网页 相关帖子 在每一个帖子中,都观察到了一个“不知从何而来”的与“安全点”相关的碰撞。最有趣的是,上面的第一篇文章实际上展示了在网络相关事件期

在AWS上运行的Ubuntu服务器上,发生了一个令人惊讶的难以捉摸的jvm崩溃

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

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

  • 我们的系统管理员建议,在崩溃时,JVM会创建大量线程

  • 我们没有在其他Linux或OSX设备中复制此错误

  • 我们使用Ning库来抓取一些 网页

相关帖子

在每一个帖子中,都观察到了一个“不知从何而来”的与“安全点”相关的碰撞。最有趣的是,上面的第一篇文章实际上展示了在网络相关事件期间JVM崩溃

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

我的问题

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


其次,任何关于aws、java、网络以及Ubuntu在云中的不同行为的见解都将在这里非常有用。

尝试使用最新的JVM(6u32或7u4),看看它是否仍然可以复制。如果您使用的是较旧的版本,那么最新版本中至少有一个不错的机会已经修复。

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