VxVM 5.1 exit codes

The Veritas Volume Manager (VxVM) utilities provide a shell-level interface for use by system administrators and high-level applications and scripts to query and manipulate objects managed through VxVM.

The majority of the VxVM utilities use a common set of exit codes, which can be used by shell scripts or other types of programs to react to specific problems detected by the utilities. The number for each distinct exit code is described in the following table.

Table 1 — VxVM exit codes
Exit CodeDescription
0 The utility is not reporting any error through the exit code.
1 Some command line arguments to the utility were invalid.
2 A syntax error occurred in a command or description, or a specified record name is too long or contains invalid characters. This code is returned only by utilities that implement a command or description language. This code may also be returned for errors in search patterns.
3 The volume daemon does not appear to be running.
4 An unexpected error was encountered while communicating with the volume daemon.
5 An unexpected error was returned by a system call or by the C library. This can also indicate that the utility ran out of memory.
6 The status for a commit was lost because the volume daemon was killed and restarted during the commit of a transaction, but after restart the volume daemon did not know whether the commit succeeded or failed.
7 The utility encountered an error that it should not have encountered. This generally implies a condition that the utility should have tested for but did not, or a condition that results from the volume daemon returning a value that did not make sense.
8 The time required to complete a transaction exceeded 60 seconds, causing the transaction locks to be lost. As most utilities reattempt the transaction at least once if a timeout occurs, this usually implies that a transaction timed out two or more times.
9 No disk group could be identified for an operation. This results either from naming a disk group that does not exist, or from supplying names on a command line that are in different disk groups or in multiple disk groups.
10 A change made to the database by another process caused the utility to stop. This code is also returned by a usage-type-dependent utility if it is given a record that is associated with a different usage type. If this situation occurs when the usage-type-dependent utility is called from a switchout utility, then the database was changed after the switchout utility determined the proper usage type to invoke.
11 A requested subdisk, plex, or volume record was not found in the configuration database. This may also mean that a record was an inappropriate type.
12 A name used to create a new configuration record matches the name of an existing record.
13 A subdisk, plex, or volume is locked against concurrent access. This code is used for inter-transaction locks associated with usage type utilities. The code is also used for the dissociated plex or subdisk lock convention, which writes a non-blank string to the tutil[0] field in a plex or subdisk structure to indicate that the record is being used.
14 No usage type could be determined for a utility that requires a usage type.
15 An unknown or invalid usage type was specified.
16 A plex or subdisk is associated, but the operation requires a dissociated record.
17 A plex or subdisk is dissociated, but the operation requires an associated record. This code can also be used to indicate that a subdisk or plex is not associated with a specific plex or volume.
18 A plex or subdisk was not dissociated because it was the last record associated with a volume or plex.
19 Association of a plex or subdisk would surpass the maximum number that can be associated to a volume or plex.
20 A specified operation is invalid within the parameters specified. For example, this code is returned when an attempt is made to split a subdisk on a striped plex, or to use a split size that is greater than the size of the plex.
21 An I/O error was encountered that caused the utility to abort an operation.
22 A volume involved in an operation did not have any associated plexes, although at least one was required.
23 A plex involved in an operation did not have any associated subdisks, although at least one was required.
24 A volume could not be started by the vxvol start operation, because the configuration of the volume and its plexes prevented the operation.
25 A specified volume was already started.
26 A specified volume was not started. For example, this code is returned by the vxvol stop operation if the operation is given a volume that is not started.
27 A volume or plex involved in an operation is in the detached state, thus preventing a successful operation.
28 A volume or plex involved in an operation is in the disabled state, thus preventing a successful operation.
29 A volume or plex involved in an operation is in the enabled state, thus preventing a successful operation.
30 An unknown error condition was encountered. This code may be used, for example, when the volume daemon returns an unrecognized error number.
31 An operation failed because a volume device was open or mounted, or because a subdisk was associated with an open or mounted volume or plex.
32 A problem occurred with multipath coordination.
33 An object was already reserved for use by the operating system.
35 An error occurred while communicating with a remote host.
39 An error occurred because the offset or length of a VxVM object is not an integral multiple of the alignment value for the disk group.
65 An array-related API failed.
66 An array-specific guideline was violated.
67 Inconsistent configuration copies are present in a disk group. This may indicate a serial split brain condition.
68 FastResync is not enabled on a volume.
69 A volume has a bad Data Change Object (DCO).
70 A snapshot volume is invalid.
71 A Replicated Volume Group (RVG) has not been started.
Note:
  • Exit code greater than 32 are reserved for use by usage types.
  • Codes greater than 64 are reserved for use by specific utilities.

References: