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). 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 ** 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 contact address which may be used to obtain more information and, in some cases, 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 ** 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. 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 ** 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. 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 ** 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.