有关原始问题,请参阅here。
我正在编写Java服务,使用Jetty for Webserving和SQLite进行数据库存储。来源可用here。
我发现,尽管该服务从我的笔记本电脑稳定运行,但当部署到EC2实例时,它会崩溃,在启动后1小时到2天之间的输出中没有明显的错误消息。我在启动调用(-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=...
)中添加了一些日志记录选项,并获得了this crashlog。
这是我第一次遇到这样的文件,乍一看似乎并不是很明显它的哪一部分是指实际的错误,哪些部分只是提供了上下文信息,所以我真的感谢任何理解它的好指南。特别是,它似乎正在尝试与ZipFiles交互,我没有在我的项目中使用它。
答案 0 :(得分:1)
Java_java_util_zip_ZipFile_getEntry
中的崩溃通常是由对.zip
个文件的并发访问造成的,例如当存在打开的实例时,文件会被覆盖。
有关详细信息,请参阅JDK-8042197,JDK-8031691。
BTW,至于原始问题,这里是关于JVM崩溃转储分析的presentation。
答案 1 :(得分:0)
查看崩溃日志,您正在解压缩的内容(jar文件或zip文件)导致JVM崩溃。
如果在启动期间发生这种情况,请尝试将其添加到JVM命令行以查看它可能正在处理的文件。
java -verbose:class [more command line]