S6-FDHOLDER-ERROR-CODES(7)

NAME
s6-fdholder-error-codes - error codes returned by the s6-fdholderd daemon

DESCRIPTION
The following error messages (and corresponding errno(3) codes) can be returned by the s6-fdholderd(8) daemon to its various clients. This page explains why they occur.

•   ‘Protocol error’ ( EPROTO) or ‘Protocol wrong type for socket’ ( EPROTOTYPE)

    The client connected to the wrong kind of server and they cannot communicate. This is generally a programming error. It can also signal a bug in the s6-fdholder tools, but protocol bugs have usually been wiped out before an s6 release.

•   ‘Broken pipe’ ( EPIPE)

    The client was not authorized to connect to the server, which closed the connection. You need to configure the access rights to the server.

•   ‘Operation not permitted’ ( EPERM)

    Even though the client was authorized to connect to the server, the specific operation it wanted to perform was denied. You need to configure the access rights to the server.

•   ‘Too many open files in system’ ( ENFILE)

    The client attempted to store more file descriptors than the server can hold. Or, the client attempted to retrieve more file descriptors than it can hold. You should check the -n option to s6-fdholderd(8), as well as the RLIMIT_NOFILE[1] resource limits used by the client and the server, and adjust them accordingly.

•   ‘Resource busy’ ( EBUSY)

    The client attempted to store a descriptor under an identifier that is already used.

•   ‘Filename too long’ ( ENAMETOOLONG)

    The identifier provided by the client was too long.

•   ‘such file or directory’ ( ENOENT)

    The identifier provided by the client was not found in the server database.

•   ‘Bad file descriptor’ ( EBADF)

    The client attempted to transmit a closed, or otherwise unsuitable for fd-passing, file descriptor.

•   ‘Operation timed out’ ( ETIMEDOUT)

    The client, or the server, took too long to perform the wanted operation. This is most probably a programming error, because both client and server should have a very fast reaction time. Check that the client is connecting to the right server, and check -t options to both client and server (the argument is interpreted as milliseconds!).

Other errors indicate a transient error such as lack of memory, hardware failure, etc.

SEE ALSO
s6-fdholder-daemon(8), s6-fdholder-delete(8), s6-fdholder-getdump(8), s6-fdholder-list(8), s6-fdholder-retrieve(8), s6-fdholder-setdump(8), s6-fdholder-store(8), s6-fdholder-transferdump(8), s6-fdholderd(8)

[1] https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_resource.h.html

This man page is ported from the authoritative documentation at: https://skarnet.org/software/s6/s6-fdholder-errorcodes.html

AUTHORS
Laurent Bercot Alexis <flexibeast@gmail.com> (man page port)