JVM崩溃堆栈跟踪

时间:2014-11-07 12:17:44

标签: java jvm jvm-hotspot jvm-crash

我们正在开发一个在tomcat上运行的java应用程序。此方案不可重现,但对于客户而言,应用程序崩溃并导致jvm崩溃

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000077a60895, pid=3644, tid=3792
#
# JRE version: 6.0_30-b20
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.5-b03 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  [ntdll.dll+0x50895]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#


 Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
v  blob 0x0000000003d6707f
j  java.lang.String.equals(Ljava/lang/Object;)Z+8
j  javax.management.MBeanAttributeInfo.<clinit>()V+25
v  ~StubRoutines::call_stub
j  com.sun.jmx.mbeanserver.MBeanServerDelegateImpl.<clinit>()V+51
v  ~StubRoutines::call_stub
j  com.sun.jmx.mbeanserver.JmxMBeanServer.newMBeanServerDelegate()Ljavax/management/MBeanServerDelegate;+0
j  javax.management.MBeanServerBuilder.newMBeanServerDelegate()Ljavax/management/MBeanServerDelegate;+0
j  javax.management.MBeanServerFactory.newMBeanServer(Ljava/lang/String;)Ljavax/management/MBeanServer;+14
j  javax.management.MBeanServerFactory.createMBeanServer(Ljava/lang/String;)Ljavax/management/MBeanServer;+6
j  javax.management.MBeanServerFactory.createMBeanServer()Ljavax/management/MBeanServer;+1
j  org.apache.catalina.startup.Bootstrap.createClassLoader(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/ClassLoader;+549
j  org.apache.catalina.startup.Bootstrap.initClassLoaders()V+5
j  org.apache.catalina.startup.Bootstrap.init()V+9
j  org.apache.catalina.startup.Bootstrap.main([Ljava/lang/String;)V+52
v  ~StubRoutines::call_stub
j  sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0
j  sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+87
j  sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+6
j  java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+161
j  net.propero.workspace.windowsinfrastructure.tomcatservice.TomcatService.run()V+153
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub

从堆栈跟踪中可以看出,这是tomcat中导致失败的代码,而不是我们的应用程序特定代码。我检查了谷歌,但找不到匹配此堆栈跟踪的已知错误。关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

当在null检查之前执行String.equals内部执行时,它看起来是一个众所周知的问题:

只有一种解决方法:您必须将JRE升级到最新的可用Java 1.6