参见 here对于原始问题。
我正在编写 Java 服务,使用 Jetty 进行网络服务,使用 SQLite 进行数据库存储。有源here .
我发现,虽然该服务在我的笔记本电脑上稳定运行,但当部署到 EC2 实例时,它会崩溃,并且在启动后的 1 小时到 2 天内不会输出任何明显的错误消息。我在启动调用中添加了一些日志记录选项 (-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=...
),并得到了 this crashlog .
这是我第一次遇到这样的文件,乍一看,它的哪一部分是指实际错误,哪一部分只是提供上下文信息,所以我真的很想感谢任何理解它的好指南。特别是,它看起来像是在尝试与 ZipFiles 交互,而我没有在我的项目中使用它。
- This answer链接到 blog在答案评论中是-1
- This answer链接到一些 Oracle documentation ,我通常会很高兴看到它,但它似乎是一个通用的调试指南 - 在其中看不到任何关于 hs_err 文件的信息(尽管进一步阅读可能会变得清晰)
- This result from Google声称“无论您执行什么 Java 代码,JVM 都不应崩溃。如果确实如此,那只是一个 JVM 错误。因此请尝试向 Sun 记录一个包含所有详细信息的缺陷,希望他们会对此进行调查。”,这听起来很绝对- 我认为我的小玩具项目不太可能发现 JVM 错误!
最佳答案
Java_java_util_zip_ZipFile_getEntry
中的崩溃通常是由并发访问 .zip
文件引起的,例如当一个打开的实例存在时,一个文件被覆盖。
参见 JDK-8042197 , JDK-8031691了解详情。
顺便说一句,关于原始问题,这里是一个 presentation关于 JVM 故障转储分析。
关于java - 了解 hs_err_pid<n>.log 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39583277/