我们有一个tomcat服务器的集群,只是升级到debian7 / openjdk7 / tomcat7(全部来自股票debian)。 现在我们在不同的机器上有两个JVM崩溃。 两台服务器具有相同的硬件和configuration完全相同(当然除了IP地址)
第一次崩溃:
# # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007fd0b582123a, pid=6542, tid=140533723084544 # # JRE version: 7.0_25-b30 # Java VM: OpenJDK 64-Bit Server VM (23.7-b01 mixed mode linux-amd64 compressed oops) # Problematic frame: # V [libjvm.so+0x62623a] LinkResolver::runtime_resolve_interface_method(CallInfo&, methodHandle, KlassHandle, Handle, KlassHandle, bool, Thread*)+0x5a # # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again # # If you would like to submit a bug report, please include # instructions on how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # --------------- THREAD --------------- Current thread (0x00007fd0948b0800): JavaThread "catalina30" daemon [_thread_in_vm, id=6670, stack(0x00007fd08e94b000,0x00007fd08ea4c000)] siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x0000000000000000
第二次崩溃:
# # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007f0a3a22421d, pid=3454, tid=139681826494208 # # JRE version: 7.0_25-b30 # Java VM: OpenJDK 64-Bit Server VM (23.7-b01 mixed mode linux-amd64 compressed oops) # Problematic frame: # V [libjvm.so+0x71021d] ParRootScanWithBarrierTwoGensClosure::do_oop(unsigned int*)+0x6d # # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again # # If you would like to submit a bug report, please include # instructions on how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # --------------- THREAD --------------- Current thread (0x000000000088c000): GCTaskThread [stack: 0x0000000000000000,0x0000000000000000] [id=3781] siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x0000000000000018
我们之前从未有任何JVM崩溃。
我真的不知道从哪里开始。 它看起来像一个硬件故障? JDK错误? Tomcat的Bug?
这最可能的原因是什么?
有我的RAM的问题。 我们有新的RAM在服务器,现在一切正常。 之后我testing了OracleJDK和OpenJDK,并且在性能或function上看不到任何差异。 Oracle JDK中唯一缺less的是完整的encryption技术。 所以我从现在开始更喜欢OpenJDK。