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 |
RXGK | rxgk |
RXK | rxkad |
U | ubik |
uae | unified afs errors |
VL | volume location server |
VOLS | volume management server |
ZCM | cache manager trace |
____ | Reserved for Rx RPC protocol errors |
___9 | Reserved for rxgen errors |
Below is a list of all com_err tables defined by AuriStorFS, with links to the registry page for each table. Allocations of entries in the AuriStorFS com_err tables should be made in consultation with afs3@auristor.com.
Note: the AuriStorFS variant of the RXGK error table conflicts with the error table documented in rxgk: GSSAPI based security class for RX. The AuriStorFS RXGK implementation used in conjunction with the yfs-rxgk security class predates the error table in the Internet-Draft by more than two years.
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 likelihood 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 and 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, AFS 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.
AuriStorFS where possible has replaced these error values with
those from the V error table.
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. However,
small negative error values are often used by C programmers to
represent failure which can be confused with these errors. Also,
in the Linux kernel, error values are often negated in ordr to
distinguish error values from memory addresses.
These error values are required to be used on the wire.
AuriStorFS never exposes these error values outside of the Rx RPC
implementation. Instead the Portable RX
com_err table values are returned to callers.
rxgen uses a number of negative error codes to indicate
protocol-level errors. These codes should not conflict with
any com_err package likely to be used.
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.
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
Fileserver took too long to respond to request, or 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
113
VSALVAGING
Volume is being salvaged (demand attach fs)
120
VRESTRICTED
Volume residency restricted
-100
VRESTARTING
Fileserver is restarting
Rx RPC error codes
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
rxgen error codes
-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_CC_XDRFREE
client error freeing arguments
Reserved codes
Registration Policy