[Dovecot] dovecot-auth consumes 100% CPU time on Solaris 10

Mark Heitmann Mark.Heitmann at dnw-germany.aero
Wed Nov 28 15:41:24 EET 2007


>
> 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);
>  }

Okay, with the little debug patch, this ist the output from my 
dovecot.log when dovecot starts

dovecot: Nov 28 14:37:04 Error: auth(default): LDAP returned wrong fd 1

Mark



More information about the dovecot mailing list