Guardian Procedure Calls Reference Manual

I Using the DIVER and DELAY Programs
This appendix describes the DIVER and DELAY programs which you can use to supplement the
testing of an application program that runs as a process pair. DIVER causes a specified processor
to fail and then prepares the processor for reload. DIVER can be used with DELAY to cause repeated
failures and reloads of the processors in a system. This failure cycle allows you to test an application
for fault tolerance while the processors are being halted and reloaded.
Running the DIVER Program
You run the DIVER program in a processor selected to fail. DIVER stops the processor such that it
no longer transmits its "I'm alive" message. Because the other processors in the system do not
receive this message, they collectively declare that the processor has failed. The difference between
a processor halt and a processor running the DIVER program is that a processor halt results in the
report of a processor halt code and a potential system freeze; a processor running the DIVER
program results in the report of the processor event message ZCPU-EVT-DIVER. For more information
on this event message, see the NonStop Kernel Event Management Programming Manual.
Note these cautions when running the DIVER program
When running the DIVER program, it is recommended that the processor run-option always
be included. Otherwise, the processor in which DIVER is intended to run is chosen by the
normal process creation rules, which might not place it in the processor that you intend
to fail.
If there is a $CMON process running in the system, it might affect the choice of processor
where DIVER will run. Unless you are sure that the $CMON process will not alter the
processor specified in the DIVER command, stop $CMON before running DIVER.
Do not use DIVER to try to halt a processor in order to get a dump. When setting up the
processor for a RELOAD command, DIVER destroys its memory contents. Consult the
operations guide for your system type for details on taking dumps.
Do not run the DIVER program if the backup CPU for its I/O processes has been reloaded
within the last five minutes. Otherwise, a CPU halt may occur.
After stopping the processor, DIVER sets up the processor for a RELOAD command, as if a processor
reset and load operation occurred. You can then reload the processor.
Before DIVER brings down a processor, it verifies that the requester's process access ID (PAID) is
a member of the super group.
If the requester's PAID is not a member of the super group, DIVER abends and the processor
continues to be operational.
The syntax to run DIVER is:
DIVER / run-option [ , run-option ] ... /
DIVER
is an implicit RUN command that starts a DIVER process.
run-option
is any valid option for the TACL RUN command. These options are described in the TACL
Reference Manual..
1576 Using the DIVER and DELAY Programs