On Wed, 2007-11-28 at 10:22 +0200, Timo Sirainen wrote:
On Wed, 2007-11-28 at 09:10 +0100, Mark Heitmann wrote:
pollsys(0x08099448, 11, 0x08047B10, 0x00000000) = 1 fd=5 ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0 fd=7 ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0 fd=1 ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=POLLIN|POLLPRI
Looks like this is the problem. fd=1 should /dev/null and it should never be passed to poll(). I'll try to look more into this later today.
See if this patch starts logging errors: diff -r edd95f9c6ba4 src/auth/db-ldap.c --- a/src/auth/db-ldap.c Wed Nov 28 08:11:17 2007 +0200 +++ b/src/auth/db-ldap.c Wed Nov 28 15:27:34 2007 +0200 @@ -513,6 +513,8 @@ static void db_ldap_get_fd(struct ldap_c i_fatal("LDAP: Can't get connection fd: %s", ldap_err2string(ret)); } + if (conn->fd <= 3) + i_error("LDAP returned wrong fd %d", conn->fd); i_assert(conn->fd != -1); net_set_nonblock(conn->fd, TRUE); }