我们现在在Oracle 1.8.0_60 JVM中遇到两次SIGSEGV崩溃,其中错误日志甚至没有暗示任何库,只是说本机代码发生了崩溃:
# Problematic frame:
# C 0x00007f6d04000000
#
和
# Problematic frame:
# C 0x00007fc6ec048ff0
#
崩溃的线程都是应用程序线程。 ForkJoinPool
或Tomcat ajp-bio线程。
可能出了什么问题?通常,当本机库出现故障时,会包含该库的名称。 我在the first crash和the second crash(full version for comparison)的已清理hs_err-logs中看到的内容并没有给我更多关于可能出现什么问题的想法,因为似乎足够的记忆力。只是元空间即将耗尽。
环境在64位Linux上运行:
[foo@bar ~]$ uname -a
Linux bar 2.6.32-504.16.2.el6.x86_64 #1 SMP Wed Apr 22 06:48:29 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
答案 0 :(得分:1)
您只发布了一个完整日志,因此无法在此处发现模式,但C帧位于非可执行内存区域且位于代码空间之外。 VM事件还显示了一系列重新/去优化和偏差撤销。所以我的猜测可能是误编。
你可以尝试的事情:
8.0_60-b27
不是最新的补丁级别。-XX:-UseBiasedLocking -XX:-TieredCompilation
-XX:-UseBiasedLocking -XX:TieredStopAtLevel=1
如果更新vm没有修复它,但其中一个选项确实存在,那么它可能是一个VM错误,你应该使用你的linux发行版或oracle文件。