【发布时间】:2011-01-31 15:42:53
【问题描述】:
我有 java 应用程序,它开始突然崩溃,无一例外。但有时 JVM 会创建崩溃日志文件,其名称如下:“hs_err_pid10930.log”。任何人都可以阅读并告诉我有什么问题吗?我无法找出问题所在。我在这里找到的唯一合理信息是交换大小为 0。我有问题吗?怎么会这样?
谢谢。
Libor
【问题讨论】:
标签: java memory-leaks crash jvm
我有 java 应用程序,它开始突然崩溃,无一例外。但有时 JVM 会创建崩溃日志文件,其名称如下:“hs_err_pid10930.log”。任何人都可以阅读并告诉我有什么问题吗?我无法找出问题所在。我在这里找到的唯一合理信息是交换大小为 0。我有问题吗?怎么会这样?
谢谢。
Libor
【问题讨论】:
标签: java memory-leaks crash jvm
每当您遇到这样的崩溃时,几乎都不是 Java 程序员的错,因为 JVM 崩溃了,这是不应该的。通过查看您的日志文件,它看起来像是在 OpenJDK 的 JVM 中某处崩溃了;我不知道具体是什么原因造成的。我建议你试试 Oracle 的官方 JDK 而不是 OpenJDK。
我不是阅读此类故障转储的专家,但这是我用来确定问题原因的部分:
# Problematic frame:
# V [libjvm.so+0x64d62d]
这是在转储的顶部。它并不总是 libjvm.so;我见过一些类似 libGL.so 的。
如果您想提交错误,转储中包含以下语句:
# If you would like to submit a bug report, please include
# instructions how to reproduce the bug and visit:
# https://bugs.launchpad.net/ubuntu/+source/openjdk-6/
我不知道你在做什么导致崩溃,也许有一个解决方法。但是在任何情况下 JVM 都不应该崩溃,所以这是您使用的 JVM 中的一个错误。
编辑
日志显示您正在运行 Ubuntu 9.10;从那时起已经有两个 Ubuntu 版本,所以我怀疑提交错误会不会有任何好处,除非你在 Ubuntu 10.04 或 10.10 上进行测试。我不知道您是否能够升级到较新的版本,但您的问题可能已经解决了。
【讨论】:
org.mortbay.io.nio.ChannelEndPoint.flush(org.mortbay.io.Buffer) 和 org.mortbay.jetty.HttpGenerator.flush() 调用的代码