(Please refer to the June 1995 issue of the Novell Application Notes for more details. Also download TABNDx.EXE from http://support.novell.com/search/patlst.htm in the Tools/Docs section.)
When a NetWare System abends or locks up, the internal debugger may provide some insight on the nature of the problem.
First of all, if the server has abended, record the actual abend message and the running process before you do anything to restart the server.
Entering the Debugger
1.) Press SHIFT-SHIFT-ALT-ESC. The keys do not have to be pressed at the same time but they do need to be held down together with the <ESC> key being the last key to go down.
2.) This will take you to a pound sign prompt.
3.) Note, the result of trying to get into the debugger helps us determine if this is a hard hang or a soft hang.. If you cannot toggle at the console, but you can get into the debugger, or the server is not responding yet you can still toggle screens at the console, you are experiencing a soft hang. If you can't toggle at the console and you cannot get into the debugger, you are experiencing a hard hang. Hard hangs are usually hardware related. Soft hangs are software, utilization or related to a combination of problems.
From the debugger, you can press H and .H to see the basic help screens.
NOTE: <enter> means press the enter key following the command.
I: Preliminary Diagnostic procedures
V <enter> - this takes you to a sequential display of each of the console screens running at the time of the abend or that were available when the debugger was invoked. Press any key to see additional screens until you get back to the # prompt. Review the screens looking for anything you think could be indicative of the problem.
.R <enter> - Displays the running process
? <enter> - displays the contents of the Extended Instruction Pointer (process scheduled to run next
Without the coredump, the hex numbers listed are not that useful. However, sometimes these commands will reference module names, function calls or reserved words. Write any of these down.
.M <enter> - this will produce a module listing. If .R or ? mentions something related to a module you are running, record the date of the module. The problem may simply be an outdate module.
II: Recovery or Coredump Generation Procedures. (Do one or the other)
[NOTE: When generating a coredump, it is best if the coredump is created before trying any of the options listed below. However, if you do enter the debugger prior to generating the coredump, DO NOT use the parameter EIP=CSleepUntilInterrupt or the G (go) commands. These will make the coredump useless.]
For intraNetWare servers, you must turn off the autoabend recovery facility to obtain a coredump.
To do this:
1.) Load Servman at the server console (or rconsole)
2.) Select Server parameters->Error Handling
3.) Set Auto Restart after Abend = 0 to force an abend rather than an auto recover
(For more information, see March 1997 Appnote on Abend Recovery)
4.) Exit servman and update files.
Generating a coredump:
From the abend, select Y to produce the coredump.
From the Internal debugger, type .C and press <enter> to start the coredump process.
Recovering from the Abend or from the debugger call
From an abend, Y will allow an immediate exit to DOS. However, this will not flush cache buffers and is a less desirable way of restarting the computer. (However, other options mentioned do not always work. The behavior of the server following an abend depends on the type of failure. )
From within the debugger, you can immediately exit to DOS by entering Q and pressing <enter> - this is the quit command and will take you to DOS. Like the "Y" response at the abend message, this option also does not flush the cache buffers and may require a VREPAIR when the server restarts.
To gracefully shut the server down and flush cache buffers:
For intraNetWare servers, you may be able to use CNTL-ALT-ESC to produce the prompt:
Down the File Server and Exit to DOS (y/n): n
IF this does not work or if the server is an earlier revision of NetWare, try the following option:
EIP=CSleepUntilInterrupt (Case sensitive) This command will put the running process to sleep. You then need to restart the server with the:
G <enter> command which stands for GO.
After restarting the server, you may find the console has switched to the system console and is sitting at the console "colon" prompt, that's the : character. This is the optimal result. Simply type down and exit. However, you may find the console switched to the system console but still at the abend screen. Press enter. This may take you to the console prompt at which time you can perform a down. If not, you may be hard locked or may have cascaded to another abend. You can repeat the entire process for each other "threads" or service process running on the server until you hard lock, run out of processes or are successful.
If after executing the G command, you find yourself at another console screen, press Control-Esc to get back to the System console and follow the same steps listed above.
Even if you are successful in downing the server, there is no guarantee that a vrepair is not necessary. However, successfully downing the server reduces the possibility of this need.
keywords: debug troubleshoot debugging coredumps