When a Sun Java VM crashes it usually creates a hs_err_pid* file (crash report). However we have a Open SuSE Linux server where java crashes without leaving a crash report behind. A core dump is created (SIGSEGV) but no hs_err_pid* file.
Are there circumstances where the Sun vm will not create a crash report? Or: how do I enable it.
My java version:
> java -version
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)
ps: It is not a problem of file system access permissions. In this case the vm will create the crash report in /tmp
.
You can find it among the VM options:
http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp#DebuggingOptions
-XX:ErrorFile=./hs_err_pid.log If an error occurs, save the error data to this file. (Introduced in 6.)
So try to start your app with:
java -XX:ErrorFile=/tmp/hs_err_pid.log -other_options yourapp.jar
And if this creates the dump, you're fine.
The problem was, that the crash was very severe, that even the crash report routines were not able to do anything.
Enabling core dumps and analyzing the system core dumps leaded to the root cause.