GRAND.CENTRAL.ORG

AFS Assigned Numbers Registry - Error Tables

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.

AFS com_err tables

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).

PackageDescription
ABadmin tools - bos
ACadmin tools - common
ACFGAFS config package
AFadmin tools - config
AKadmin tools - kas
ALadmin tools - client
AMadmin tools - misc
APadmin tools - pts
AUadmin tools - utility
AVadmin tools - vos
BUCDbackup - coordinator
BUDBbackup - database
BUTCbackup - tape controller
BUTMbackup - tape module
BUTXbackup - XBSA
BZbasic overseer
CMDcommand library
KAkaserver
KTCkernel token cache
PTprotection server
RKSrxkad stress test
RXKrxkad
Uubik
VLvolume location server
VOLSvolume management server
ZCMcache manager trace
____Reserved for rx protocol errors
___9Reserved for rx RPC errors

Non-AFS com_err tables

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.

PackageDescriptionContact
AVdsAFS volume dump scannerjhutz+@cmu.edu
adbOpenVision Kerberos 5 kadmin dbkrbdev@mit.edu
arxAdvanced Rx APIcg2v+@andrew.cmu.edu
asn1Kerberos 5 ASN.1 librarykrbdev@mit.edu
ds1w1wire bus driverjhutz+@cmu.edu
ext2Linux second extended filesystemtytso@mit.edu
ggssMIT GSSAPI - generickrbdev@mit.edu
hafshostafs lightweight AFS serverjhutz+@cmu.edu
hdbHeimdal databaseheimdal-bugs@pdc.kth.se
heimHeimdalheimdal-bugs@pdc.kth.se
impMIT Kerberos 5 kdb dump importkrbdev@mit.edu
kadmKerberos 4 kadminkrbdev@mit.edu
k524Kerberos 5-to-4 translatorkrbdev@mit.edu
k5gMIT GSSAPI - krb5krbdev@mit.edu
kdb5MIT Kerberos 5 databasekrbdev@mit.edu
kdc5MIT Kerberos 5 KDC internalkrbdev@mit.edu
kpwsMIT Kerberos 5 kpasswdkrbdev@mit.edu
krbKerberos 4krbdev@mit.edu
krb5Kerberos 5krbdev@mit.edu
kv5mMIT Kerberos 5 magic numberskrbdev@mit.edu
ovkOpenVision Kerberos 5 kadminkrbdev@mit.edu
ovkuOpenVision chpass stringskrbdev@mit.edu
profMIT profile librarykrbdev@mit.edu
ptyMIT libptykrbdev@mit.edu
rxtRx testingcg2v+@andrew.cmu.edu
ssSS command library
tdbStage tape databasecg2v+@andrew.cmu.edu
xFilXFILES virtual file I/O layerjhutz+@cmu.edu
zephZephyr notification systemzephyr-hackers@sourceforge.net
zsrvZephyr serverzephyr-hackers@sourceforge.net

Volume Package Errors

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.

CodeNameMeaning
101VSALVAGEVolume needs salvage
102VNOVNODENo such vnode
103VNOVOLVolume does not exist or is not online
104VVOLEXISTSVolume already exists
105VNOSERVICEVolume is not in service
106VOFFLINEVolume is off line
107VONLINEVolume is already on line
108VDISKFULLPartition full
109VOVERQUOTAMax quota exceeded
110VBUSYVolume temporarily busy
111VMOVEDVolume moved
112VIOTemporary I/O error
120VRESTRICTEDVolume residency restricted
-100VRESTARTINGFileserver is restarting

Rx error codes

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.

CodeNameMeaning
-1RX_CALL_DEADconnection timed out
-2RX_INVALID_OPERATIONinvalid operation
-3RX_CALL_TIMEOUTcall timed out
-4RX_EOFend-of-data on read
-5RX_PROTOCOL_ERRORRx protocol error
-6RX_USER_ABORTgeneric user-requested abort
-7RX_ADDRINUSEport already in use
-8RX_MSGSIZEmessage too large
-100RX_RESTARTINGtransient error; possibly restarting
-450RXGEN_CC_MARSHALclient error encoding arguments
-451RXGEN_CC_UNMARSHALclient error decoding arguments
-452RXGEN_SS_MARSHALserver error encoding arguments
-453RXGEN_SS_UNMARSHALserver error decoding arguments
-454RXGEN_DECODEerror decoding opcode
-455RXGEN_OPCODEunknown opcode
-456RXGEN_SS_XDRFREEserver error freeing arguments
-457RXGEN_CS_XDRFREEclient error freeing arguments

Reserved codes

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.

Registration Policy

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.