libjvm.so中有类似的stackoverflow问题。
这是一个在Apache Tomcat下运行的大型应用程序(〜30GB)。似乎总是会因相同的错误消息而失败,该消息似乎位于JVM C 代码中:
V [libjvm.so+0x643ee4] InstanceKlass::find_method_index(Array<Method*>*, Symbol*, Symbol*, bool, bool)+0x14
我包括了完整的Java核心转储。
https://drive.google.com/open?id=0b0rh8nwt2krystllew9dckw3a3c
任何人都可以向我指出正确的方向,即使如何开始解决这个问题。我试图将JDK升级到最新版本级别(JDK 1.8版本144),无济于事。
查看转储,似乎当热点试图进行优化时发生了问题。因此,我检查了您在启动期间设置的Java属性,并且有一些影响:
-Xnoclassgc
据我所知,这与Java 8无用。与
相同 -XX:MaxPermSize=256m
您正在更改用于使用TP G1
的垃圾收集器。
-XX:+UseG1GC
这可能与崩溃有关,因此我的建议是更改返回使用默认设置。如果撞车事故消失,G1不适合您的申请。
,正如我在评论中提到的那样,您需要清理WebApp的Lib-directory。有许多不同版本的重复库,例如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合作时。