GRAND.CENTRAL.ORG |
---|
This is a registry of the various error code tables used in the AFS protocols. This includes a list of com_err error tables used in AFS, as well as two groups of codes not defined using com_err. As a service to users of com_err outside the context of AFS, this registry also contains a table of com_err error tables used by other software.
In order to allow for various protocols and components to define error codes which do not conflict, AFS uses com_err error codes in nearly every situation. Below is a list of all com_err tables defined by AFS, with links to the registry page for each table.
Note that all of the package names listed below begin with capital letters. This has the effect of insuring that the resulting error codes will have positive values when interpreted as signed 32-bit numbers, which allows applications to distinguish between errors generated by the remote server (normally positive) from errors generated by the Rx protocol layer at either end (always negative).
Package | Description |
---|---|
AB | admin tools - bos |
AC | admin tools - common |
ACFG | AFS config package |
AF | admin tools - config |
AK | admin tools - kas |
AL | admin tools - client |
AM | admin tools - misc |
AP | admin tools - pts |
AU | admin tools - utility |
AV | admin tools - vos |
BUCD | backup - coordinator |
BUDB | backup - database |
BUTC | backup - tape controller |
BUTM | backup - tape module |
BUTX | backup - XBSA |
BZ | basic overseer |
CMD | command library |
KA | kaserver |
KTC | kernel token cache |
PT | protection server |
RKS | rxkad stress test |
RXK | rxkad |
U | ubik |
VL | volume location server |
VOLS | volume management server |
ZCM | cache manager trace |
____ | Reserved for rx protocol errors |
___9 | Reserved for rx RPC errors |
The following is an index of known non-AFS com_err error tables. It is maintained as a service to other users of the com_err package, in order to reduce the likelyhood of conflicts and allow users to more easily interpret error codes. Note that while we hope it serves a useful purpose, this list is almost certainly not exhaustive.
Each entry includes a link to the current list of codes a contact address to obtain more information or to register a code. Except where noted, the contents of these error tables are _not_ administered by the AFS Assigned Numbers Registrar, and the information provided here may not be the most current available.
Package | Description | Contact |
---|---|---|
AVds | AFS volume dump scanner | jhutz+@cmu.edu |
adb | OpenVision Kerberos 5 kadmin db | krbdev@mit.edu |
arx | Advanced Rx API | cg2v+@andrew.cmu.edu |
asn1 | Kerberos 5 ASN.1 library | krbdev@mit.edu |
ds1w | 1wire bus driver | jhutz+@cmu.edu |
ext2 | Linux second extended filesystem | tytso@mit.edu |
ggss | MIT GSSAPI - generic | krbdev@mit.edu |
hafs | hostafs lightweight AFS server | jhutz+@cmu.edu |
hdb | Heimdal database | heimdal-bugs@pdc.kth.se |
heim | Heimdal | heimdal-bugs@pdc.kth.se |
imp | MIT Kerberos 5 kdb dump import | krbdev@mit.edu |
kadm | Kerberos 4 kadmin | krbdev@mit.edu |
k524 | Kerberos 5-to-4 translator | krbdev@mit.edu |
k5g | MIT GSSAPI - krb5 | krbdev@mit.edu |
kdb5 | MIT Kerberos 5 database | krbdev@mit.edu |
kdc5 | MIT Kerberos 5 KDC internal | krbdev@mit.edu |
kpws | MIT Kerberos 5 kpasswd | krbdev@mit.edu |
krb | Kerberos 4 | krbdev@mit.edu |
krb5 | Kerberos 5 | krbdev@mit.edu |
kv5m | MIT Kerberos 5 magic numbers | krbdev@mit.edu |
ovk | OpenVision Kerberos 5 kadmin | krbdev@mit.edu |
ovku | OpenVision chpass strings | krbdev@mit.edu |
prof | MIT profile library | krbdev@mit.edu |
pty | MIT libpty | krbdev@mit.edu |
rxt | Rx testing | cg2v+@andrew.cmu.edu |
ss | SS command library | |
tdb | Stage tape database | cg2v+@andrew.cmu.edu |
xFil | XFILES virtual file I/O layer | jhutz+@cmu.edu |
zeph | Zephyr notification system | zephyr-hackers@sourceforge.net |
zsrv | Zephyr server | zephyr-hackers@sourceforge.net |
For historical reasons, volume-related errors are small positive integers starting at 101; these error codes may be returned by the fileserver or volserver. While codes in this range were once "safe", they now conflict with system error codes on many platforms. Callers should use care when interpreting error codes to distinguish system and volume package errors based on context.
Note also that VRESTARTING is -100, a negative number. This is done to "trick" older implementations not supporting this state into believing that the fileserver returning this error is down, allowing them to retry or fail over to another fileserver instead of reporting a permanent error to the user.
Code | Name | Meaning |
---|---|---|
101 | VSALVAGE | Volume needs salvage |
102 | VNOVNODE | No such vnode |
103 | VNOVOL | Volume does not exist or is not online |
104 | VVOLEXISTS | Volume already exists |
105 | VNOSERVICE | Volume is not in service |
106 | VOFFLINE | Volume is off line |
107 | VONLINE | Volume is already on line |
108 | VDISKFULL | Partition full |
109 | VOVERQUOTA | Max quota exceeded |
110 | VBUSY | Volume temporarily busy |
111 | VMOVED | Volume moved |
112 | VIO | Temporary I/O error |
120 | VRESTRICTED | Volume residency restricted |
-100 | VRESTARTING | Fileserver is restarting |
The Rx protocol and implementations use a number of small negative error codes to indicate protocol-level errors. These codes should not conflict with any com_err package likely to be used.
Code | Name | Meaning |
---|---|---|
-1 | RX_CALL_DEAD | connection timed out |
-2 | RX_INVALID_OPERATION | invalid operation |
-3 | RX_CALL_TIMEOUT | call timed out |
-4 | RX_EOF | end-of-data on read |
-5 | RX_PROTOCOL_ERROR | Rx protocol error |
-6 | RX_USER_ABORT | generic user-requested abort |
-7 | RX_ADDRINUSE | port already in use |
-8 | RX_MSGSIZE | message too large |
-100 | RX_RESTARTING | transient error; possibly restarting |
-450 | RXGEN_CC_MARSHAL | client error encoding arguments |
-451 | RXGEN_CC_UNMARSHAL | client error decoding arguments |
-452 | RXGEN_SS_MARSHAL | server error encoding arguments |
-453 | RXGEN_SS_UNMARSHAL | server error decoding arguments |
-454 | RXGEN_DECODE | error decoding opcode |
-455 | RXGEN_OPCODE | unknown opcode |
-456 | RXGEN_SS_XDRFREE | server error freeing arguments |
-457 | RXGEN_CS_XDRFREE | client error freeing arguments |
Error code 0 is reserved for a successful result.
The error package name '', corresponding to positive integers less than 256, is reserved for system error codes. Package names consisting of a single uppercase letter should be avoided in order to allow for a larger number of system error codes in the future.
The error package names '____' and '___9' are reserved for Rx protocol and RPC marshalling errors. Codes in these ranges will continue to be assigned explicitly, without the use of com_err.
In most cases, new codes will be assigned on request in tables which are coordinated by the AFS Assigned Numbers Registrar. Requests for code assignment must include information about the meaning and usage of the new code(s) to be assigned.
Because of their special nature, codes in the tables of volume package and Rx protocol errors will normally be assigned only when it is the concensus of the AFS development community that a new code is needed.
New AFS-related com_err error tables will be established when there is a demonstrated need not served by any existing table (for example, a new AFS component or protocol whose error should be separate from those in any existing table). Proposals for new tables should include the proposed table name, purpose of the table, and an initial list of codes which the table would contain. If the need is not plainly clear, the registrar may refer the request to the AFS development community for discussion. Once a new table is established, assignment of codes in the new table will normally be coordinated by the AFS Assigned Numbers Registrar.
New com_err error tables for purposes not related to AFS will be registered on request. Registration requests should include the table name, purpose of the table, and a contact address. The registrar will generally not assign table names or insure their uniqueness, but may provide advice in selection of a table name. The AFS Assigned Numbers Registrar will generally not coordinate assignment of codes in error tables that are not AFS-related. However, a link to an official copy of the table will be published, if one is provided by the contact.