Error file

When a fatal error occurs, one or more error log file are created depending upon the type of GC used by the application.

If the application uses Serial GC and a fatal error occurs, only one error file is created and it is in the form hs_err_pid<pid>.log

where,

<pid> is the process ID of the Java process. This is the same format of the error file created in earlier version of NSJ.

If the application uses Parallel or Concurrent GC and a fatal error occurs, more than one fatal error files are created and their filename format is of the form hs_err_pid<Java pid>_<Java pid | javahelper pid>.log

where,

<Java pid> is the process ID of the Java process and <javahelper pid> is the process ID of the javahelper process.

The first process ID is always the Java process ID. The second process ID is the process ID of the process that creates the error file. If the error file is created by the Java process, the second process ID is the Java process ID and if created by the javahelper process, it is the javahelper process ID. The number of error files created is equal to the number of processes in the Java process group.

When a fatal error occurs, the process that encounters the fatal error terminates. The header of the error log file generated by this process contains information about the fatal error. This could be an operating system signal or a JVM internal error. If Parallel or Concurrent GC is used, other processes in the Java process group also terminate and create error log files as mentioned earlier. The error log file contains additional information about the process that encountered the fatal error and the list of processes that forms the Java group.

Thus, the process that encountered the fatal error can be identified by looking at the headers of all the error log files generated.

Examples

  • The following is the first few lines of the error log file when a Java process with parallel or concurrent GC terminates abnormally:
    #
    # A fatal error has been detected by the Java Runtime Environment:
    #
    # SIGSEGV (0xb) at pc=7ed16ab4, pid=1979711505, tid=10 # # JRE version: 7.0 # Java VM: Java HotSpot(TM) Server VM (21.1-b02-svcnedccadmin:2012jul25-11:47 mixed mode nsk oss-ia64 ) # Problematic frame:
    # C  [(DLL libjvm.so)+0x0]  invoke__17PSParallelCompactSFb + 0x1C0 (DLL libjvm.so)+0x0 #
    

    This example indicates that the hs_err_pid1979711505_1979711505.log file was created by a Java process with PID 1979711505, and that it terminated due to SIGSEGV.

  • The following is the first few lines of the error log file when a javahelper process terminated after detecting the abnormal termination of another process in the Java process group:

    #
    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  Internal Error (0xe0000010), pid=2097152069, tid=4 #  Error: Process 3,1140 in the Java process group has terminated abnormally. Initiating termination of all the other processes in the process group # # JRE version: 7.0 # Java VM: Java HotSpot(TM) Server VM (21.1-b02-svcnedccadmin:2012jul25-11:47 mixed mode nsk oss-ia64 ) # Failed to write core dump.
    #
    #  Please report this error to HPE customer support.
    #
    ----------- P R O C E S S   G R O U P-------------
    # The processes in the Java process group are:
    # PID (CPU, PIN):
    # 620757051 (3,1138)
    # 1006633021 (3,1141)
    # 2097152069 (3,1139)
    # 1291845689 (3,1144)
    # 1979711505 (3,1140)
    

    This example indicates that javahelper process with PID 2097152069 created the file hs_err_pid1979711505_2097152069.log. The log indicates that the javahelper process had terminated due to another process in the Java process group terminating abnormally. The Java PID corresponding to this javahelper process is 1979711505. There are four javahelper processes in the Java group and their PIDs are 620757051, 1006633021, 2097152069, and 1291845689.