How to prepare for and obtain a GroupWise Agent or Gateway core file on Linux

  • 3447847
  • 30-Jan-2008
  • 19-Jul-2016

Environment


Novell GroupWise 8 Support Pack 3 Hot Patch 3
Novell Open Enterprise Server 2 (OES2)
Novell SUSE Linux Enterprise Server 10
Novell GroupWise 8 Support Pack 3 Hot Patch 1
Novell GroupWise 2012 Support Pack 2

SUSE Linux Enterprise Server 11 Service Pack 4 (SLES 11 SP4)
SUSE Linux Enterprise Server 12 Service Pack 1 (SLES 12 SP1)
SUSE Linux Enterprise Server 12 Service Pack 2 (SLES 12 SP2)

Situation

Purpose:
To identify a step by step process to setup, configure, and obtain a GroupWise Agent or GroupWise gateway core file in the event of a crash of these applications that load as the result of executing this command at the directory /etc/init.d :

./grpwise start

This TID will also describe how to gather the needed files (not just the core file) to submit to Novell for inspection.

Note: When the steps in this technical document are completed, GroupWise will be setup to automatically generate a core file no matter when it crashes. This document is a "Live" document and may change as Linux and or GroupWise changes, or as better or more efficient steps are found.

Resolution

Corrective actions:

1. Download the "novell-getcore" shell script utility from the Novell site
https://download.novell.com/patch/finder/


, insert the keyword only of "novell-getcore" , no quotes.  You will be taken to the latest build of this utility, which comes with the latest eDirectory or OES11.  If you have OES11 , it should be in the /opt/novell/eDirectory/bin/ directory.  This utility is not updated too often, only as needed.

NOTE:  Be aware a better alternative to the "novell-getcore" is using the "getappcore" utility that comes installed with SLES11 by default.  You can see the information and example syntax usage with "man getappcore".

2. Copy it to the root directory of the Linux box with the crash. This is the location where GroupWise creates core files. This utility will gather the needed files to submit to Novell Support.

3. Perform these steps after hours or when it is convenient to have the GroupWise agents and gateways shut down. The described steps assume that the the command " ./grpwise stop " has been executed in the directory /etc/init.d .

4. To ensure that when the GroupWise agent or gateway crashes you get a "core.xxxx" core file, check the current setting for the attribute "kernel.core_uses_pid = " by executing this command at a terminal prompt being logged in as "root" :

  sysctl -a | grep kernel.core_uses_pid
 
You may get the output :  "kernel.core_uses_pid = 0"

If the value equals 0 (zero) or something other than 1 then edit the file /etc/sysctl.conf and add the values:

kernel.core_uses_pid = 1
kernel.core_pattern = core

  Note:  If you have a "kernel.core_pattern = <somethingOtherThan-core>" , change it to what is listed above.

  To check the core pattern setting issue the command "sysctl -a | grep kernel.core_pattern"  - no quotes.


NOTE:  To make these changes effective WITHOUT RESTARTING THE LINUX SERVER - Issue the command :
       
          sysctl -p /etc/sysctl.conf -w

5. Edit the script file called "grpwise" in the /etc/init.d directory and place this command in it :

ulimit -c unlimited.

You can place this command at the top of the script just after the following two lines :

#!/bin/bash
#set -x


6. After you have saved the new modified version of the"grpwise" script, when you are ready to restart the GroupWise agents, change directories to /etc/init.d and execute the command :

./grpwise start

7. Monitor now for a GroupWise agent or gateway crash on linux.

8. The following steps assume a GroupWise crash has occurred. In order to successfully run the novell-getcore script, you need to know the name of the groupwise core file, after the crash. You can execute these commands at a terminal prompt to find out the name of the core file :

cd /
ll

You should see a file at the root of the / directory called"core.", let's say for this TID's example it is called"core.1125".

9. The "novell-getcore" utility needs to have the path to the application binaries that are involved in the crash.  In the case of GroupWise the default location is :

/opt/novell/groupwise/agents/bin

So lets say we NOW create a new script called "gwcore.sh" that will modify the PATH and execute the "novell-getcore" utility. Place the new script file in the root of the / directory and place these two commands in it:

export PATH="/opt/novell/groupwise/agents/bin":$PATH
./novell-getcore -b /core.1125

10. Run the "gwcore.sh" script by excuting this command :

./gwcore.sh

11. When the script completes, you should see a file of the name :

"core___linux_GWApplicationName_LinuxServerName.tar.gz"

This is the file you need to submit to Novell Support for inspection.

12. Download and run the supportconfig script that will give Novell Support complete information about the Linux environment you are in. Complete instructions for useage and downloading this utility are at :

https://www.novell.com/communities/node/2332/supportconfig-linux

Submit the resulting tar ball file to Novell Support.


New Information:
13. When we start the GroupWise agents, MTA, POA or GWIA, we create the .pid at the corresponding log directory (/var/log/novell/groupwise/. ), in it we have the agent's build date, for example, GWPOA Build Date: 01/28/2008. This information will help development to debug the core. We would like customers to attach this .pid file with the matching core and send to us. At normal agent exits, the.pid will be deleted. This applies to GroupWise 7.0 Service Pack 3 and GroupWise 8.0.

Additional Information

Addtional Information : ( optional )

When you complete these steps in this TID, you might wonder why if you check the ability to create a core file on the SLES10 box with the "ulimit -a" command at a terminal prompt, you may see :
core file size (blocks, -c) 0

This indicates that the current login cannot create a core file. So you may think that the command (ulimit -c unlimited) that we put in the "grpwise" script file did not execute. This is NOT correct. The change to the linux environment we made in the "grpwise" script file only takes place in that grpwise"parent" process and any "child" process that flows as the result of executing ./grpwise start.

If someone wants to really confirm this "ulimit -c unlimited" command actually is in the proper linux environment then replace the procedure listed in the "Resolution" section step #5 with the below :

5. Edit the script file called "grpwise" in the /etc/init.d directory and place this command in it :
ulimit -c unlimited.

You can place this command at the top of the script just after the following two lines :
#!/bin/bash
#set -x
clear > /dev/tty12
echo "Original core file size limit = $(ulimit -c)"> /dev/tty12
ulimit -c unlimited
echo ""> /dev/tty12
echo "NEW core file size limit = $(ulimit -c)"> /dev/tty12

So having completed this, when you execute step #6 in the"Resolution" section, if you then complete the keystrokes of ALT-CTRL-F12, to go an alternate screen, you will see :

Original core file size limit = 0

NEW core file size limit = unlimited

To get back to your graphical screen that you were at do the keystroke : ALT-F7