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

Antonio Kanouras Antonio Kanouras <solist@solistland.dnsalias.org>, 299051@bugs.debian.org
Fri, 11 Mar 2005 19:28:32 +0200


[Florian Weimer <fw@deneb.enyo.de>]
FW> * Marc Haber:
FW> 
FW> > On Fri, Mar 11, 2005 at 03:42:05PM +0100, Florian Weimer wrote:
FW> >> My best guess so far is that Exim closes all descriptors after
FW> >> becoming a daemon, including the ones opened by libnss-ldap.
FW> >
FW> > exim by default only closes fds 0, 1 and 2, which kills the
FW> > Debian-Installer (see #297607). So we have patched exim to close
FW> > all fds on startup (debian/patches/10_daemon_close_fds.dpatch) for
FW> > ages.
FW> 
FW> Antonio, could you try and see what happens if you back out this
FW> patch?

I'm leaving for my home city in a few minutes so I won't be able to
check this out until tomorrow.

Meanwhile, check:

http://solistland.dnsalias.org/debian-bugs/299051/strace.out.bz2
and
http://solistland.dnsalias.org/debian-bugs/299051/ltrace.out.bz2

for the full strace & ltrace output, respectively.

What seems really weird to me is:
[...]
getpwuid(0, 0x8103b70, 0x8137b98, 0x8103b80, 37) = 0xb7c8de9c
[...]
[pid 30985] getpwuid(103, 32, 8201, 0xb77498a4, 0x10000000
<unfinished ...>
<... getpwuid resumed> )                         = 0xb7c8de9c
[...]

given that the prototype for getpwuid() is:

struct passwd *getpwuid(uid_t uid);

Also, in the first case, parameters 2, 3 seem to be valid pointers,
while in the second they don't. Also the fifth one puzzles me.

Cheers,
Antonio