Sun Java System Directory Server Enterprise Edition 6.3 Troubleshooting Guide

Collecting Data About a Crash

This section describes the data you need to collect when the server crashes. The most critical data to collect is the core file.


Note –

If you contact the Sun Support Center about a crashed Directory Server process, you must provide a core file and logs.


Generating a Core File

Core file and crash dumps are generated when a process or application terminates abnormally. You must configure your system to allow Directory Server to generate a core file if the server crashes. The core file contains a snapshot of the Directory Server process at the time of the crash, and can be indispensable in determining what led to the crash. Core files are written to the same directory as the errors logs, by default, instance-path/logs/. Core files can be quite large, as they include the entry cache.

If a core file was not generated automatically, you can configure your operating system to allow core dumping by using the commands described in the following table and then waiting for the next crash to retrieve the data.

Solaris 

coreadm

or  


ulimit -c unlimited
ulimit -H -c unlimited

Linux 


ulimit -c unlimited
ulimit -H -c unlimited

HPUX/AIX 

ulimit -c

Windows 

Windows crashdump

For example, on Solaris OS, you enable applications to generate core files using the following command:


# coreadm -g /path-to-file/%f.%n.%p.core -e global -e process \
 -e global-setid -e proc-setid -e log

The path-to-file specifies the full path to the core file you want to generate. The file will be named using the executable file name (%f), the system node name (%n), and the process ID (%p).

If after enabling core file generation your system still does not create a core file, you may need to change the file-size writing limits set by your operating system. Use the ulimit command to change the maximum core file size and maximum stack segment size as follows:


# ulimit -c unlimited 
# ulimit -s unlimited

Check that the limits are set correctly using the -a option as follows:


# ulimit -a
time(seconds)        unlimited
file(blocks)         unlimited
data(kbytes)         unlimited
stack(kbytes)        unlimited
coredump(blocks)     unlimited
nofiles(descriptors) 256
vmemory(kbytes)      unlimited

For information about configuring core file generate on Red Hat Linux and Windows, see Configuring the Operating System to Generate Core Files in Sun Gathering Debug Data for Sun Java System Directory Server 5.

Next, verify that applications can generate core files using the kill -11 process-id command. The cores should be generated in either the specified directory or in the default instance-name/logs directory.


# cd /var/cores
# sleep 100000 &
[1] process-id
# kill -11 process-id
# ls

Getting the Core and Shared Libraries

Get all the libraries and binaries associated with the slapd process for core file analysis. Collect the libraries using the pkg_app script . The pkg_app script packages an executable and all of its shared libraries into one compressed tar file. You provide the process ID of the application and, optionally, the name of the core file to be opened. For more information about the pkg_app script see Using the pkg_app Script on Solaris.

As superuser, run the pkg_app script as follows:


# pkg_app server-pid core-file

Note –

You can also run the pkg_app script without a core file. This reduces the size of the script's output. You need to later set the variable to the correct location of the core file.


Additional Information

To look at the log files created at the time the problem occurred, check the following files:


# install-path/instance-name/logs/errors*
# install-path/instance-name/logs/access*

If the crash is related to the operating system running out of disk or memory, retrieve the system logs. For example, on Solaris OS check the /var/adm/messages file and the /var/log/syslogs file for hardware or memory failures.

To get complete version output, use the following commands:


# cd install-path/bin/slapd/server
# ./ns-slapd -D install-path/instance-name -V