Exit Status
The exit status is an important piece of information to decide whether a job has succeeded or not. Normally, an exit status of 0 (zero) is used to signify the successful execution of a tool.
The following table describes some of the exit statuses used by VOV.
Status | Possible Meaning |
---|---|
0 | Successful termination. |
1 | Generic failure. This status is commonly used to indicate failures. |
2 | A program printed the usage message and exited. |
4 | Command not found. |
5 | A program exited because it received a signal. |
6 | A wrapper (e.g. vw or vrt) cannot redirect stdout or stderr. |
7 | An interactive job (see option -I of nc run) did not complete (was descheduled or forgotten). |
8 | The vovtasker encountered an error while managing the job (please report this condition to https://www.pbsworks.com/ContactSupport.aspx) |
33 |
|
72 | A job sent to Accelerator with an indirect tasker failed. |
73 | A job was lost in Accelerator. |
74 | A capsule has failed. You will probably have to run the job from the terminal to get the complete description of the error. |
75 | A VOV client cannot connect to the server. |
76 | The vovserver cannot bind the main socket. |
77 | VOV Channel error. Occurs when the tool exits without calling VovEnd(). See VOV Instrumentation Library (VIL) for more details. |
78 | vovtasker could not redirect stdout. |
79 | vovtasker could not find executable. |
91-93 | Problems in collecting status of job. |
100-120 | Problems with the VOV Instrumentation Library (VIL). |
126 | No longer used. See 136. |
136 | Typically a deep error in the execution of a job. This was
previously exit 126, but has been changed because /bin/sh also
uses this code.
|
137 | Typically a deep error in the execution of a piped command as a child of vovserver. Rarely seen (was previously 127). |
138 | Typically a deep error in the execution of utcc_system(), an internal utility (was previously 127). |
201-215 | These codes are used to force automatic rescheduling of jobs. A job that exits with one of these codes will be rescheduled immediately with Priority given by code - 200. Thus a job that exits with status 201 will be rescheduled with priority low (1) while a job that exits with status 215 will be rescheduled with top priority. These codes are typically used by jobs that fail because of a spurious license problem. They allow the tool developer to signal VOV that the failure is probably due to a missing license and that it will probably not occur again if the job is resubmitted. |
216 | Used to reschedule a multiphase job. See Multiphase Support. |
240 | Job could not be dispatched to selected best tasker. |
249 | Channel has died (a VIL problem) (same as -7) |
251 | Tool had an output conflict (same as -5) |
252 | Tool had an input conflict (same as -4) |
253 | Tool had a cycle conflict (same as -3) |
Legal Exit Status
A property of each job is the list of exit status values that are accepted as meaning success. By default, only the exit status 0 (zero) is accepted. To change the list of accepted exit status values:
- From VIL
- Use the procedure VovCorrectExitStatus(char* list) as
in:
/* This is a fragment of C or C++ code. */ VovCorrectExitStatus( "0 2 12" );
- With VIL-Tools
- Use VovCorrectExitStatus, as in
#!/bin/csh -f # This is an instrumented shell script. ... VovCorrectExitStatus "0 2 12" ...
- From Flow.tcl
- Use the procedure L, as
in:
# This is a fragment of Flow.tcl E BASE R sun5 # Like E and R, the procedure L has effect on all # subsequent jobs. L "0 2 12" J vw cp aa bb
Exit Status Fields
The fields associated with the exit status are:
Field | Description |
---|---|
EXIT_STATUS | The actual exit status |
OK_STATUS | (old) The list of allowed exit status values (same as LEGALEXIT) |
LEGALEXIT | (new) The list of allowed exit status values (same as OK_STATUS) |