JVM crash 报错SIGSEGV (0xb)分析原因?
线上运行的几台实例,陆续在同一时间段出现JVM crash,拿到的hs_err_pidxxx.log文件主要内容如下,苦于找不出根因,请大家帮忙指教一二,感谢。
其中最后一行的com.j.m.s.e.m.AbstractBaseExceptionInfoMessage
是业务代码,也主要想弄清楚这个问题与业务代码本身有关系没。
## A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f5e94bd20a7, pid=752, tid=140036367759104
#
# JRE version: Java(TM) SE Runtime Environment (8.0_60-b27) (build 1.8.0_60-b27)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.60-b23 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# V [libjvm.so+0x6340a7] IfNode::up_one_dom(Node*, bool)+0x97
#
# Core dump written. Default location: /home/admin/core or core.752
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
#
--------------- T H R E A D ---------------
Current thread (0x00007f5e9050e000): JavaThread "C2 CompilerThread7" daemon [_thread_in_native, id=942, stack(0x00007f5cc1e4b000,0x00007f5cc1f4c000)]
siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x000000000000002c
Registers:
RAX=0x00007f5c80ec2780, RBX=0x00007f5c80a98a38, RCX=0x0000000000000000, RDX=0x0000000000000000
RSP=0x00007f5cc1f46c70, RBP=0x00007f5cc1f46c70, RSI=0x0000000000000000, RDI=0x00007f5c806141f8
R8 =0x0000000000000fbc, R9 =0x0000000000000001, R10=0x0000000000000001, R11=0x00007f5cc1f49bf0
R12=0x00007f5c80ab2418, R13=0x00007f5cc1f47a00, R14=0x0000000000000000, R15=0x00007f5c806141f8
RIP=0x00007f5e94bd20a7, EFLAGS=0x0000000000010246, CSGSFS=0x002b000000000033, ERR=0x0000000000000004
TRAPNO=0x000000000000000e
Top of Stack: (sp=0x00007f5cc1f46c70)
0x00007f5cc1f46c70: 00007f5cc1f46f00 00007f5e94bd374d
0x00007f5cc1f46c80: 00007f5cc1f46cb0 00007f5e94e87972
0x00007f5cc1f46c90: 00007f5cc1f46cd0 00007f5e94e88016
0x00007f5cc1f46ca0: 00007f5cc1f47a00 00007f5c00000000
0x00007f5cc1f46cb0: 00007f5c80ab4138 0000007c00000017
0x00007f5cc1f46cc0: 00007f5cc1f47a00 00007f5e94f03dc0
0x00007f5cc1f46cd0: 00007f5c80ab2480 00007f5c80ab2500
0x00007f5cc1f46ce0: 0000000000000001 00007f5e9050e460
0x00007f5cc1f46cf0: 00007f5c00000001 00007f5cc1f483d8
0x00007f5cc1f46d00: 00007f5cc1f46d40 00007f5e94e88016
0x00007f5cc1f46d10: 00007f5cc1f483f8 00007f5c80ab4470
0x00007f5cc1f46d20: 0000000000000000 0000000000000001
0x00007f5cc1f46d30: 00007f5c80ab4470 00007f5cc1f47a00
0x00007f5cc1f46d40: 00007f5cc1f46db0 00007f5e94f019dc
0x00007f5cc1f46d50: 00007f5c80ce3160 00007f5cc1f48380
0x00007f5cc1f46d60: 00007f5cc1f46db0 00007f5cc1f483d8
0x00007f5cc1f46d70: 00007f5cc1f48380 00007f5cc1f48418
0x00007f5cc1f46d80: 00007f5cc1f483f8 00007f5c80ab3588
0x00007f5cc1f46d90: 00007f5c80ce3160 0000000000000001
0x00007f5cc1f46da0: 00007f5c80ce3478 00007f5c80ab4470
0x00007f5cc1f46db0: 00007f5c80ab2138 00007f5c80ab2180
0x00007f5cc1f46dc0: 000000001f9b6540 01000000c1f47a00
0x00007f5cc1f46dd0: 00007f5cc1f47a00 01007f5c809e90d8
0x00007f5cc1f46de0: 00007f5cc1f46e20 00007f5e94e88016
0x00007f5cc1f46df0: 0000000000000001 00007f5c80ab1f60
0x00007f5cc1f46e00: 0000000000000000 00007f5cc1f47a00
0x00007f5cc1f46e10: 00007f5c80ab2b48 00007f5cc1f47a00
0x00007f5cc1f46e20: 00007f5cc1f46e90 00007f5e94f019dc
0x00007f5cc1f46e30: 00007f5ca4ef9910 00000000000000c8
0x00007f5cc1f46e40: 0000000000000004 00007f5cc1f483d8
0x00007f5cc1f46e50: 00007f5cc1f46e90 00007f5e94e88016
0x00007f5cc1f46e60: 00007f5cc1f483f8 00007f5cc1f49bf0
Instructions: (pc=0x00007f5e94bd20a7)
0x00007f5e94bd2087: d2 74 b8 0f b7 41 2c 83 e0 07 83 f8 07 74 50 0f
0x00007f5e94bd2097: b7 42 2c 83 e0 07 83 f8 07 74 2f 48 39 d1 75 9b
0x00007f5e94bd20a7: 0f b7 41 2c 48 89 ca 83 e0 1f 83 f8 15 0f 84 6b
0x00007f5e94bd20b7: ff ff ff 31 d2 e9 64 ff ff ff 0f 1f 80 00 00 00
Register to memory mapping:
RAX=0x00007f5c80ec2780 is an unknown value
RBX=0x00007f5c80a98a38 is an unknown value
RCX=0x0000000000000000 is an unknown value
RDX=0x0000000000000000 is an unknown value
RSP=0x00007f5cc1f46c70 is pointing into the stack for thread: 0x00007f5e9050e000
RBP=0x00007f5cc1f46c70 is pointing into the stack for thread: 0x00007f5e9050e000
RSI=0x0000000000000000 is an unknown value
RDI=0x00007f5c806141f8 is an unknown value
R8 =0x0000000000000fbc is an unknown value
R9 =0x0000000000000001 is an unknown value
R10=0x0000000000000001 is an unknown value
R11=0x00007f5cc1f49bf0 is pointing into the stack for thread: 0x00007f5e9050e000
R12=0x00007f5c80ab2418 is an unknown value
R13=0x00007f5cc1f47a00 is pointing into the stack for thread: 0x00007f5e9050e000
R14=0x0000000000000000 is an unknown value
R15=0x00007f5c806141f8 is an unknown value
Stack: [0x00007f5cc1e4b000,0x00007f5cc1f4c000], sp=0x00007f5cc1f46c70, free space=1007k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x6340a7] IfNode::up_one_dom(Node*, bool)+0x97
V [libjvm.so+0x63574d] IfNode::Ideal(PhaseGVN*, bool)+0x6ad
V [libjvm.so+0x966e2c] PhaseIterGVN::transform_old(Node*)+0x7c
V [libjvm.so+0x9645ec] PhaseIterGVN::optimize()+0x1bc
V [libjvm.so+0x4a1019] Compile::Optimize()+0x159
V [libjvm.so+0x4a2e5a] Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool)+0x13ca
V [libjvm.so+0x3f0718] C2Compiler::compile_method(ciEnv*, ciMethod*, int)+0x198
V [libjvm.so+0x4ad34a] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xc9a
V [libjvm.so+0x4ae2f6] CompileBroker::compiler_thread_loop()+0x5d6
V [libjvm.so+0xa68f3f] JavaThread::thread_main_inner()+0xdf
V [libjvm.so+0xa6906c] JavaThread::run()+0x11c
V [libjvm.so+0x91cb88] java_start(Thread*)+0x108
C [libpthread.so.0+0x79d1] start_thread+0xd1
Current CompileTask:
C2:244243956 62051 ! 4 com.j.m.s.e.m.AbstractBaseExceptionInfoMessage::handle (272 bytes)
回答:
升级JDK版本解决,由1.8.60 -> 1.8.191,老版本JDK存在JIT编译相关的漏洞,跟业务代码本身无关,怀疑是热点代码优化导致
以上是 JVM crash 报错SIGSEGV (0xb)分析原因? 的全部内容, 来源链接: utcz.com/p/945022.html