2017-05-23 130 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
相關問題