Obtaining GroupWise Cores on SLES 12 and SLES 15
When I first started moving GroupWise systems to SLES 12, I had a horrible time just configuring GroupWise to capture a core in the event of a crash. It took a long time to figure it out since it's not as automatic as on previous SLES versions. I've also found similar challenges on SLES 15. I was finally able to compile a list of needed items to either try to prevent the crash or create a good core once it does. Also I was told by GroupWise support that these cores provided better info that the cores produced by default on SLES 11. In a situation where I can expect a core, I do this ahead of time as a necessary measure. I don't wait to see if it cores and then try to do this, I just do it when I build a system.
Note: Apparmor tends to interfere with cores so ensure it's turned off or disabled. I had a customer reboot a server last week, then GroupWise crashed, but I had not disabled AppArmor, only unloaded it. So when the server restarted, it loaded again and I failed to get a core at all.
Linux Specific Tasks
Disable the limit for the maximum size of a core dump file. I find that this is generally already set, but you can run it again just to be sure. Run the command:
ulimit -c unlimited
Create a location for the dump files. Run the command:
install -m 1777 -d /opt/cores (This is my preferred path for the Core location, but you can change this)
Configure a fixed location for storing core dumps as well as the file format for the core. The %e.%p will capture process names so it's easy to identify what process caused the core. This also sets the necessary kernel parameters to capture the core.
Add the following lines to /etc/sysctl.conf:
kernel.core_uses_pid = 1
Then issue the following command :
sysctl -p /etc/sysctl.conf -w
The noelision option is not really about creating a core, it's more about preventing a crash in the first place. There are some applications that are susceptible to an Intel CPU hardware bug. GroupWise seems to be one of those applications. Reference this SUSE TID: https://www.suse.com/support/kb/doc/?id=7022289
Create a file called:
Add the following line to the /etc/ld.so.conf.d/noelision.conf file you just created:
/lib64/noelision (This text should be in the file)
Save the file and run the following command from a terminal prompt:
/sbin/ldconfig (This is a run command)
I've found that when Apparmor is running, it can interfere with the core process. Disable it if you're having crashes and trying to capture cores.
Run the command:
Disable AppArmor in Yast:
Yast --> System --> Services Manager --> apparmor --> Disable (Scroll down the list, it's not in alphabetical order, I find that it's generally toward the bottom)
GroupWise Specific Configuration
The following items should be completed to ensure that GroupWise is configured correctly to send a core to the configured path/filename when there's a crash.
Add the following line to /etc/sysconfig/grpwise:
Note #1: It's /etc/sysconfig/grpwise not /etc/init.d/grpwise.
Note #2: This is case sensitive and should be entered exactly as shown
Check the /etc/init.d/grpwise file, you should see the following string (It's usually there):