IBM Support

MustGather: Required settings to generate full core files on AIX

Troubleshooting


Problem

When a crash occurs, the most important diagnostic data to obtain is the process core file. In order to ensure this is generated for the Java Virtual Machine (JVM) on AIX, there are a number of settings that need to be in place. The majority of the JVM settings are in place by default, but operating system settings also need to be in place.

Resolving The Problem


Operating system settings:

  1. To obtain full core files set the following ulimit options:

    ulimit -c unlimited - turn on corefiles with unlimited size
    ulimit -d unlimited - sets the user data limit to unlimited
    ulimit -f unlimited - sets the file limit to unlimited

    The current ulimit settings can be displayed using:
    ulimit -a

    These values are the "soft" limit, and are done on a per user basis. These cannot exceed the "hard" limit value.

    In order to display and change to the "hard" limits, the same ulimit commands can be run using the additional -H flag.

    Note:
    As of Java 5.0 GA, for the "ulimit -c value", the value for the soft limit will be ignored and the hard limit value will be used in order to help ensure generation of the full core file.

    This can be disabled by disabling the generation of core files using the following Java command line option:
    -Xdump:system:none

  2. The following SMIT setting also needs to be in place:
    1. Start smit by typing "smit" as root
    2. Go to System Environments -> Change/Show Characteristics of Operating System
    3. Set the Enable full CORE dump option to TRUE

    In case SMIT administration tool is not available, please set the following flag from the command line as root user:

    To set full core generation:
    chdev -a fullcore=true -lsys0

    To verify full core is set:
    lsattr -Elsys0 | grep full

Java Virtual Machine settings:
To generate core files on crash events, check that the the JVM is set to produce a core file when a crash occurs, run the following:

java -Xdump:what

which should produce the following:

In Java 5 releases,
dumpFn=doSystemDump
events=gpf+abort
filter=
label=/u/cbailey/sdk/jre/bin/core.%Y%m%d.%H%M%S.%pid.dmp
range=1..0
priority=999
request=nodumps


In Java 6 Releases:
-Xdump:system:
    events=gpf+abort+traceassert,
    label=/u/cbailey/sdk6/jre/bin/core.%Y%m%d.%H%M%S.%pid.%seq.dmp,
    range=1..0,
    priority=999,
    request=serial

In Java 7 Releases:
-Xdump:system:
    events=gpf+abort+traceassert+corruptcache,
    label=/u/cbailey/sdk7/jre/bin/core.%Y%m%d.%H%M%S.%pid.%seq.dmp,
    range=1..0,
    priority=999,
    request=serial

The values above are the default settings. At least events=gpf must be set in order to generate a core file when a crash occurs.

Options can be changed and/or set using the command line option:

-Xdump:system[:=, ...]

Available disk space:
It is also important to ensure that there is enough disk space available for the core file to be written to. The JVM allows the core file to be written to any directory that is specified in the label option. In order for the core file to be written to this location, there must be sufficient disk space (up to 4GB might be required on 32-bit process, and even larger for 64-bit), and the correct permissions for the Java process to write to that location.

[{"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Debugging Tools","Platform":[{"code":"PF002","label":"AIX"}],"Version":"7.0;6.0;5.0","Edition":"J2SE","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
15 June 2018

UID

swg21222455