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.
-
Get the Intelligence server’s process ID by executing
ps -ef | grep -i mstrsvr
. The process ID is 6837 in the example below. -
Simulate a server crash by running a
sudo kill -6 <server_process_id>
command. - 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.
$ 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
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.
-
Using the
root
permission, open the/etc/init.d/mstr-<InstallName>-iserver-CastorServer
init script. Typically,<InstallName>
is of the form ofuser@timestamp
. Locate the following lines.Copystart ()
{ -
Below the located lines, add the following command to allow Intelligence server to start as a service with the core file enabled.
Copyulimit -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.
-
If you have followed the steps in Enabling core dump, please comment out or remove the following lines from
/etc/sysctl.conf
.Copykernel.core_pattern = /<path_to_the_location>/core/core.%e.%p.%h.%t
fs.suid_dumpable = 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
:CopyOpenGPGCheck = no
ProcessUnpackaged = yes -
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
.CopyDumpLocation =/Your_desired/Path_to_generate/the_core_file
-
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 -
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:
- Ensure that the
DumpLocation
exists and is writable by the ABRT process. - If you customize the
DumpLocation
, make sure it is different than the folder specified forWatchCrashdumpArchiveDir
, which is another settings in theabrt.conf
file. - 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.