On 14/03/2017 5:03 PM, Takao, Shinji wrote:
Hi all,
I encountered an unintentional process abort with SIGSEGV
when a Java process received a SIGUSR2.
I was little surprised because I believed that the SIGUSR2
was to be ignored when it had no user definition.
Is there any documentation for the behavior?
SIGUSR2 is used by the VM on Linux (and some other OS) to implement a
suspend/resume protocol used by the event framework. It is not available
for direct use. If you need to use it then you can change the SR_signum
value by setting an env var:
_JAVA_SR_SIGNUM=n
Documention is somewhat lacking - but better in JDK 9.
David
-----
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007fca804a40a2, pid=2137, tid=0x00007fca81949740
#
# JRE version: OpenJDK Runtime Environment (8.0_121-b13) (build 1.8.0_121-b13)
# Java VM: OpenJDK 64-Bit Server VM (25.121-b13 mixed mode linux-amd64
compressed oops)
# Problematic frame:
# V [libjvm.so+0x8700a2]
#
# Core dump written. Default location: /xxx/xxx/core or core.2137
#
# 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 is native thread
siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr:
0x0000000000000110
Best regards,
Shinji