APAR status
Closed as program error.
Error description
Error Message: JVM freezes in signal handler when memory corruption reported in malloc header structure . Stack Trace: #0 0xffffe410 in __kernel_vsyscall () #1 0xb7f276fe in __lll_mutex_lock_wait () from /lib/libc.so.6 #2 0xb7ec3d59 in _L_lock_113 () from /lib/libc.so.6 #3 0xb7ebf312 in ptmalloc_lock_all () from /lib/libc.so.6 #4 0xb7ee798f in fork () from /lib/libc.so.6 #5 0xb7faec74 in fork () from /lib/libpthread.so.0 #6 0xb7d8ba61 in j9dump_create () from /opt/WebSphere61/AppServer/java/jre/bin/libj9prt23.so #7 0xb7c23cd6 in doSystemDump () from /opt/WebSphere61/AppServer/java/jre/bin/libj9dmp23.so .
Local fix
Use -Xrs option to disable all JVM signal handlers
Problem summary
The problem is reported when a JVM signal handler is invoked as a consequence of memory corruption in the malloc header structure on LINUX. JVM signal handler uses the fork system function to process the system dump and fork on LINUX uses malloc for its functionality. So, when JVM signal handler is invoked for such memory corruption, the subsequent call to malloc (from fork) resulted in a hang.
Problem conclusion
JVM has created the option -Xrs:sync which on Linux, z/OS and AIX to instruct the JVM to not register signal handlers for SIGILL/BUS/FPE/SEGV/TRAP/ABRT signals while preserving JVM signal handlers for other signals (like SIGQUIT, etc.). This feature enables the JVM not to register signal handlers for these selective signals & register signal handler for other signals. This way JVM avoids the problematic code path(involves fork) on such error conditions without disturbing signal actions of other signals. Specifically, while -Xrs disables the triggering of the -Xdump:event user event when SIGQUIT is injected to the process, -Xrs:sync does not. With -Xrs:sync, users can still generate javacore files by injecting SIGQUIT to the process. Notes: 1. -Xrs:sync will reduce performance by approximately 2-4% depending on the application as an optimization needs to be disabled when it is used. 2. If -Xrs:sysc is used and any of the signals it disables are delivered to the process, the default OS action for the signal will occur. The default OS action is normally to generate a system core file, but users confirm this on their system. This defect will be fixed in: 5.0.0 SR12 6.0.0 SR9
Temporary fix
Comments
APAR Information
APAR number
IZ80188
Reported component name
J9 COMMON CODE
Reported component ID
620700127
Reported release
600
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2010-07-15
Closed date
2010-08-25
Last modified date
2010-08-25
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
J9 COMMON CODE
Fixed component ID
620700127
Applicable component levels
R600 PSY
UP
[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCVQ3W","label":"Virtual Machine"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.0","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
25 August 2010