2017-05-23 159 views
2

检测我活的服务器上tomcat的崩溃,其产生hs_err_pid文件。在这里面是有问题的框架 - > _wordcopy_fwd_dest_aligned + 0x54。我搜索了所有类似的jvm crash的案例,但是找不到这个有问题的框架的含义。有什么建议吗?jvm的崩溃:致命错误已被Java运行时环境

# 
# A fatal error has been detected by the Java Runtime Environment: 
# 
# SIGBUS (0x7) at pc=0x00007f61087e3cb4, pid=18886, tid=140051814115072 
# 
# JRE version: 6.0_37-b06 
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.12-b01 mixed mode linux-amd64 compressed oops) 
# Problematic frame: 
# C [libc.so.6+0x89cb4] _wordcopy_fwd_dest_aligned+0x54 
# 
# If you would like to submit a bug report, please visit: 
# http://java.sun.com/webapps/bugreport/crash.jsp 
# 

--------------- T H R E A D --------------- 

Current thread (0x00007f6044017000): JavaThread "ajp-bio-10009-exec-97" daemon [_thread_in_vm, id=28541, stack(0x00007f605a916000,0x00007f605aa17000)] 

siginfo:si_signo=SIGBUS: si_errno=0, si_code=2 (BUS_ADRERR), si_addr=0x00007f6059d3f9f8 

Registers: 
RAX=0x0000000000000038, RBX=0x00007f6059d3f9f9, RCX=0x0000000000000001, RDX=0x000000000000004c 
RSP=0x00007f605aa14298, RBP=0x00000006e903e928, RSI=0x00007f6059d3f9f8, RDI=0x00000006e903e928 
R8 =0x0000000000000008, R9 =0x00007f61085ecb38, R10=0x00007f60fd010ec1, R11=0x00007f61085d4090 
R12=0x00000006e903e928, R13=0x0000000000000268, R14=0x00007f61085f0bc0, R15=0x00007f605aa14430 
RIP=0x00007f61087e3cb4, EFLAGS=0x0000000000010202, CSGSFS=0x000000000000e033, ERR=0x0000000000000004 
TRAPNO=0x000000000000000e 

Top of Stack: (sp=0x00007f605aa14298) 
0x00007f605aa14298: 00007f6059d3f9f9 00000006e903e928 
0x00007f605aa142a8: 00007f61087dd8ae 0000000000000004 
0x00007f605aa142b8: 00007f605aa15b60 00007f605aa142e0 
0x00007f605aa142c8: 00007f6044017000 0000000000000268 
0x00007f605aa142d8: 00007f6107f313eb 00007f605aa14350 
0x00007f605aa142e8: 00007f6108392c00 0000000000000010 
0x00007f605aa142f8: 00007f6059d3f9f9 00007f6044017000 
0x00007f605aa14308: 00007f60a11b4338 00007f6044017000 
0x00007f605aa14318: 00000000ffffffff 00007f6108430701 
0x00007f605aa14328: 00000007e00cf808 0000000000000000 
0x00007f605aa14338: 00000007e00cf808 00007f605aa14450 
0x00007f605aa14348: 00007f6044017000 00007f605aa143f0 
0x00007f605aa14358: 00007f60fd010eee 0000000000000268 
0x00007f605aa14368: 00007f6107ef6a6c 0000000000000000 
0x00007f605aa14378: 00007f60a11b4338 0000000000000004 
0x00007f605aa14388: 00000000ffffffff 00007f6108430701 
0x00007f605aa14398: 0000000000001389 00007f605aa14460 
0x00007f605aa143a8: 00007f6107ef63ad 00007f605aa143b0 
0x00007f605aa143b8: 0000000000000000 00007f605aa14450 
0x00007f605aa143c8: 00000007e00d2508 0000000000000000 
0x00007f605aa143d8: 00000007e00cf808 0000000000000000 
0x00007f605aa143e8: 00007f605aa14410 00007f605aa14498 
0x00007f605aa143f8: 00007f60fd005a82 0000000000000000 
0x00007f605aa14408: 00007f60fd00df58 0000000000000268 
0x00007f605aa14418: 0000000400000002 0000000000000010 
0x00007f605aa14428: 00007f60a11b4340 00000006e903e918 
0x00007f605aa14438: 00007f6059d3f9f9 0000000000001389 
0x00007f605aa14448: 0000000000000000 000000071005d290 
0x00007f605aa14458: 00007f605aa14458 00000007e015e822 
0x00007f605aa14468: 00007f605aa14508 00000007e015f408 
0x00007f605aa14478: 0000000000000000 00000007e015e850 
0x00007f605aa14488: 00007f605aa14410 00007f605aa144c8 

Instructions: (pc=0x00007f61087e3cb4) 
0x00007f61087e3c94: 1b 48 85 d2 74 42 4c 8b 1e 48 8b 6e 08 48 83 ef 
0x00007f61087e3ca4: 08 48 83 c6 08 e9 98 00 00 00 66 90 48 83 ea 01 
0x00007f61087e3cb4: 4c 8b 16 4c 8b 5e 08 0f 85 bf 00 00 00 0f 1f 80 
0x00007f61087e3cc4: 00 00 00 00 89 c1 49 d3 e3 44 89 c1 4c 89 d8 49 

Register to memory mapping: 

RAX=0x0000000000000038 is an unknown value 
RBX=0x00007f6059d3f9f9 is an unknown value 
RCX=0x0000000000000001 is an unknown value 
RDX=0x000000000000004c is an unknown value 
RSP=0x00007f605aa14298 is pointing into the stack for thread: 0x00007f6044017000 
RBP= 

回答

0

这里有几种可能性。但是,除非你使用任何本机库(例如tcnative),故障完全位于应用程序(包括Tomcat的这里的“应用程序”的一部分)之外。应用程序无法做的事情应该导致JVM崩溃。

  1. 有一个机库的错误使用的是
  2. 有一个在JVM
  3. 的错误有一个在libc
  4. 的错误你有一个硬件错误

如果你真的有任何本地组件,我认为#1是最有可能的。

我觉得#4是最有可能的,如果你没有任何本地组件。每当我看到一个SIGBUS它已经证明是底层硬件的问题。如果可能的话,那台机器停止服务并运行memtest86+(或等同于你的架构)的机器上。它会锻炼内存,CPU,系统总线看看它们是否经常工作会暴露出问题。

如果你的系统通过的Memtest86 + 2次的测试中,我会说,你很可能发现了一个bug在JVM(不太可能),或在libc中(甚至不太可能)。无论是哪种情况,请将所有内容升级到最新版本并重新尝试。你观察到

2
  1. 崩溃不是Java的问题,它是redhat问题"https://bugzilla.redhat.com/show_bug.cgi?id=546158"
  2. 什么是有问题的框架: 它是顶部框架造成死机,你的情况是本地帧(C)导致libC.so文件。 请找到更多的细节here
相关问题