MicroStrategy ONE

Core Dump File Problems

Core dumping is functioning properly if the core file is generated under the target folder, for example, /<path_to_the_location>/core, during a server crash. The steps to verify this functionality on Linux operating system (OS) is outlined below.

  1. Get the Intelligence server’s process ID by executing ps -ef | grep -i mstrsvr. The process ID is 6837 in the example below.
  2. Copy
    $ ps -ef | grep -i mstrsvr
    mstr      6837     1  2 12:15 ?        00:02:37 /opt/mstr/MicroStrategy/install/IntelligenceServer/bin/MSTRSvr -s -w /opt/mstr/MicroStrategy/IntelligenceServer -t status-iserver.xml /opt/mstr/MicroStrategy/install/lib/libMSTRSvr2.so -n CastorServer
    mstr     32481 32391  0 14:12 pts/0    00:00:00 grep --color=auto -i mstrsvr
  3. Simulate a server crash by running a sudo kill -6 <server_process_id> command.

  4. Verify that a core file is generated under the target folder. For example, /<path_to_the_location>/core. The core file size should be non-zero.

If the core file is not generated according to the procedure above, you should identify the root cause. The possible causes and steps to fix them are outlined below.

Invalid or Missing Linux Operating System Configuration

See Software Requirements and Recommendations for the correct OS configuration to enable core dumping. Make sure to restart Intelligence server after applying the settings.

Missing Configuration when Intelligence Server is Registered as a Service

Your Linux machine may need a reboot to apply the OS-level core dump configuration. If core dumping is still disabled after reboot, the default user profile may have disabled the creation of core files for processes launched in the init phase (during machine reboot). To fix this, apply the steps below.

  1. Using the root permission, open the /etc/init.d/mstr-<InstallName>-iserver-CastorServer init script. Typically, <InstallName> is of the form of user@timestamp. Locate the following lines.

    Copy
    start ()
    {
  2. Below the located lines, add the following command to allow Intelligence server to start as a service with the core file enabled.

    Copy
    ulimit -c ulimited

Insufficient Disk Space

You must ensure that the disk, where the core file will be written into, has sufficient free space. Note that the core file is written to the directory specified for kernel.core_pattern (see Enabling core dump for details), while the expected core files size is identical to the memory footprint of the Intelligence server when it crashed. Also, please ensure that the creation of large files (more than 2GB) is supported, when your machine uses Network File System (NFS).

Alternative: Process Core Files using ABRT in RedHat Enterprise Linux 6 and Newer

RedHat Linux version 6.x and newer are shipped with an Automatic Bug Reporting Tool (ABRT) that automatically collects and stores core dump files into the /var/spool/abrt folder. If this is preferred, additional steps are needed to ensure Intelligence server’s core dumping can work together with ABRT. For a detailed explanation, please refer to the official explanation regarding ABRT.

  1. If you have followed the steps in Enabling core dump, please comment out or remove the following lines from /etc/sysctl.conf.

    Copy
    kernel.core_pattern = /<path_to_the_location>/core/core.%e.%p.%h.%t
    fs.suid_dumpable = 2
  2. Enable core dump collection for Intelligence server, which is not signed or packaged by RedHat. Do this by applying the following lines into /etc/abrt/abrt-action-save-package-data.conf:

    Copy
    OpenGPGCheck = no
    ProcessUnpackaged = yes
  3. Configure the folder where the core file will be saved, by adding the following parameter to /etc/abrt/abrt.conf. By default, the parameter is commented out and has a value of /var/spool/abrt .

    Copy
    DumpLocation =/Your_desired/Path_to_generate/the_core_file
  4. Restart the ABRT service to apply the above-mentioned settings. Make sure you run these commands as root.

    Copy
    # service abrtd restart
    # service abrt-ccpp start
  5. Trigger core dumping and verify that the core file can be created by executing the command below. It is critical to execute this from the /IntelligenceServer folder and note the location of the core file created.

    Copy
    # gcore -o <file> <pid>

Several important notes:

  1. Ensure that the DumpLocation exists and is writable by the ABRT process.
  2. If you customize the DumpLocation, make sure it is different than the folder specified for WatchCrashdumpArchiveDir, which is another settings in the abrt.conf file.
  3. If the core file is truncated or still not being dumped, you can review the system message logs in /var/log/messages to investigate why core dumping fails.