Hi Günther > Date: 2026-10-21 23:22:50+0200 > From: Günther Noack > > The ETOOMANYREFS error is detected in too_many_unix_fds() in > net/unix/af_unix.c when the user's (not the processes') in-flight FDs > exceed RLIMIT_NOFILE, and the process has neither CAP_SYS_RESOURCE nor > CAP_SYS_ADMIN. The error is raised when all of the following > (simplified) conditions are true: > > * user->unix_inflight > task_rlimit(p, RLIMIT_NOFILE) > * !capable(CAP_SYS_RESOURCE) > * !capable(CAP_SYS_ADMIN) > > The check was introduced in linux.git 712f4aad406b (2016-01-11; "unix: > properly account for FDs passed over unix sockets"). > > Fixes: dc4eea68b565 (2016-12-17; "unix.7: Document ETOOMANYREFS for SCM_RIGHTS send exceeding RLIMIT_NOFILE limit") > Cc: Michael Kerrisk > Cc: Willy Tarreau > Cc: Kuniyuki Iwashima > Assisted-by: LLM > Signed-off-by: Günther Noack > --- Reviewed-by: Alejandro Colomar > > Notes: > Double checked in code -- the condition under which this error is > returned was not fully spelled out. > > man/man7/unix.7 | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/man/man7/unix.7 b/man/man7/unix.7 > index 79198445c581..0d2ea8bda2ae 100644 > --- a/man/man7/unix.7 > +++ b/man/man7/unix.7 > @@ -785,10 +785,14 @@ when sending a file descriptor as ancillary data over Would you mind having a look at CONTRIBUTING.d/git for improving the hunk context? git-diff(1), gitattributes(5) To produce useful hunk contexts in manual pages, we need to hack git(1)'s idea of a function name, and also to tell git what is a manual page. $ git config --global diff.man.xfuncname '^\.S[SHsh] .*$'; $ mkdir -p ~/.config/git/; $ echo '*.[0-9]* diff=man' >>~/.config/git/attributes; Cheers, Alex > a UNIX domain socket (see the description of > .BR SCM_RIGHTS , > above). > -It occurs if the number of "in-flight" file descriptors exceeds the > +It occurs if the number of "in-flight" file descriptors > +sent by processes of the caller's real user ID > +exceeds the caller's > .B RLIMIT_NOFILE > -resource limit and the caller does not have the > +resource limit and the caller has neither the > .B CAP_SYS_RESOURCE > +nor the > +.B CAP_SYS_ADMIN > capability. > An in-flight file descriptor is one that has been sent using > .BR sendmsg (2) > -- > 2.56.0 > > --