有关此问题的类似stackoverflow问题SIGSEGV Java Fatal Error in libjvm.so。
这是一个在apache tomcat下运行的大型应用程序(~30GB)。似乎始终失败并显示相同的错误消息,该消息似乎在JVM C ++代码中:
{{1}}
我已经包含了完整的java核心转储。
https://drive.google.com/open?id=0B0rh8NWt2kRySTlleW9Dckw3a3c
任何人都可以指出我如何开始解决这个问题的正确方向。我试图将JDK升级到最新版本(JDK 1.8版本144),但无济于事。
答案 0 :(得分:0)
查看转储,似乎问题发生在Hotspot尝试进行优化时。所以我检查了你在启动时设置的java属性,并且有一些对它有影响:
-Xnoclassgc
据我所知,这对Java 8没有用处。与
相同-XX:MaxPermSize=256m
您正在更改要使用的垃圾收集器tp G1
。
-XX:+UseG1GC
这可能与崩溃有关,所以我的建议是将设置更改为使用默认设置。如果崩溃消失,G1不适合您的应用程序。
正如我在评论中提到的,你需要清理你的webapp的lib目录。有许多不同版本的重复库,例如bcprov-jdk14-140.jar
和bcprov-jdk14-1.38.jar
,bcmail-jdk14-139.jar
和bcmail-jdk14-1.38.jar
,...这不会以您看到的方式使您的应用程序崩溃,但会导致签名验证检查失败在尝试从版本1.39的bcmail加载邮件类时,在类加载器中使用版本1.40的BC-provider。