Bug#299051: exim4+libnss-ldap: Loops infinitely on startup

Florian Weimer Florian Weimer <fw@deneb.enyo.de>, 299051@bugs.debian.org
Fri, 11 Mar 2005 15:42:05 +0100


* Antonio Kanouras:

> [pid 27674] socket(PF_INET6, SOCK_STREAM, IPPROTO_IP <unfinished ...>
> [pid 27674] <... socket resumed> )      = 3
> [pid 27674] setsockopt(3, SOL_IPV6, IPV6_V6ONLY, [1], 4) = 0
> setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
> setsockopt(3, SOL_TCP, TCP_NODELAY, [1], 4) = 0
> bind(3, {sa_family=AF_INET6, sin6_port=htons(25), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
> listen(3, 20)                           = 0

FD 3 is one of Exim's listening FDs.

> write(3, "0\201\321\2\1\vc\201\313\4\36ou=People,dc=solistla"..., 212) = -1 EPIPE (Broken pipe)
> --- SIGPIPE (Broken pipe) @ 0 (0) ---
> time(NULL)                              = 1110490993
> write(3, "0\5\2\1\fB\0", 7)             = -1 EPIPE (Broken pipe)
> --- SIGPIPE (Broken pipe) @ 0 (0) ---
> close(3)                                = 0

Obviously, libnss-ldap thinks it owns that descriptor, and closes it.

My best guess so far is that Exim closes all descriptors after
becoming a daemon, including the ones opened by libnss-ldap.  However,
the strace you included doesn't show this part.