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

回到顶部