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

Tore André Klock klock at beacon.com
Wed May 31 19:16:20 EEST 2006


Timo Sirainen wrote:
> On May 31, 2006, at 6:26 PM, Tore André Klock wrote: The one strange thing
> here is that there seem to be two different poll() calls somewhere doing
> different things. If this is the case, the only place where this could happen
> is in PostgreSQL code. You haven't configured and enabled that also, right?
> :)
No, I only added --with-ldap.  I don't believe I have any SQL enabled.  I don't
even think PostgresSQL is even installed.

> Give -v pollsys parameters to truss. It shows what fd it is that's returning
> something all the time. Looks like in the one Solaris system I have you can
> get a list of file descriptors by looking at /proc/pid/fd/ directory
> contents. But I don't know how you could know where the sockets are connected
> to.
Here is the output after I re-enabled the ldap setup:
---cut----
Base time stamp:  1149091594.7831  [ Wed May 31 12:06:34 EDT 2006 ]
 0.0010 pollsys(0xFFFFFD7FFFDFF6C0, 5, 0xFFFFFD7FFFDFF6A0, 0x00000000) = 0
        fd=8  ev=POLLIN rev=0
        fd=-1 ev=0 rev=0
        ...last pollfd structure repeated 3 times...
        timeout: 0.000000000 sec
 0.0011 pollsys(0xFFFFFD7FFFDFF6C0, 5, 0xFFFFFD7FFFDFF6A0, 0x00000000) = 0
        fd=8  ev=POLLIN rev=0
        fd=-1 ev=0 rev=0
        ...last pollfd structure repeated 3 times...
        timeout: 0.000000000 sec
 0.0012 pollsys(0x00467DC0, 10, 0xFFFFFD7FFFDFFAE0, 0x00000000) = 1
        fd=5  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=1  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=POLLIN|POLLPRI
        fd=0  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=3  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=9  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=10 ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=11 ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=12 ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=13 ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=14 ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        timeout: 0.575000000 sec
 0.0013 pollsys(0xFFFFFD7FFFDFF6C0, 5, 0xFFFFFD7FFFDFF6A0, 0x00000000) = 0
        fd=8  ev=POLLIN rev=0
        fd=-1 ev=0 rev=0
        ...last pollfd structure repeated 3 times...
        timeout: 0.000000000 sec
 0.0014 pollsys(0xFFFFFD7FFFDFF6C0, 5, 0xFFFFFD7FFFDFF6A0, 0x00000000) = 0
        fd=8  ev=POLLIN rev=0
        fd=-1 ev=0 rev=0
        ...last pollfd structure repeated 3 times...
        timeout: 0.000000000 sec
 0.0014 pollsys(0x00467DC0, 10, 0xFFFFFD7FFFDFFAE0, 0x00000000) = 1
        fd=5  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=1  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=POLLIN|POLLPRI
        fd=0  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=3  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=9  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=10 ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=11 ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=12 ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=13 ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=14 ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        timeout: 0.575000000 sec
---cut----

/proc/pid/fd only gives me a list of the file descriptions:
---cut---
s---------   0 root     root           0 May 31 12:06 0
c---------   1 root     sys       13,  2 May 31 12:00 1
s---------   0 root     root           0 May 31 12:06 10
s---------   0 root     root           0 May 31 12:06 11
s---------   0 root     root           0 May 31 12:06 12
s---------   0 root     root           0 May 31 12:06 13
s---------   0 root     root           0 May 31 12:08 14
s---------   0 root     root           0 May 31 12:08 15
p---------   0 root     root           0 May 31 12:08 2
s---------   0 root     root           0 May 31 12:06 3
c---------   1 root     sys      149,  1 May 31 08:41 4
p---------   0 root     root           0 May 31 12:06 5
p---------   0 root     root           0 May 31 12:06 6
D---------   1 root     root           0 May 12 10:52 7
s---------   0 root     root           0 May 31 12:08 8
s---------   0 root     root           0 May 31 12:06 9
---cut---

/proc/pid/path gives me:
---cut---
lrwxrwxrwx   1 root     root           0 May 31 12:06 0
lrwxrwxrwx   1 root     root           0 May 31 12:06 1 -> /devices/pseudo/mm at 0:null
lrwxrwxrwx   1 root     root           0 May 31 12:06 10
lrwxrwxrwx   1 root     root           0 May 31 12:06 11
lrwxrwxrwx   1 root     root           0 May 31 12:06 12
lrwxrwxrwx   1 root     root           0 May 31 12:06 13
lrwxrwxrwx   1 root     root           0 May 31 12:06 15
lrwxrwxrwx   1 root     root           0 May 31 12:06 2
lrwxrwxrwx   1 root     root           0 May 31 12:06 3
lrwxrwxrwx   1 root     root           0 May 31 12:06 4 ->
/devices/pseudo/random at 0:urandom
lrwxrwxrwx   1 root     root           0 May 31 12:06 5
lrwxrwxrwx   1 root     root           0 May 31 12:06 6
lrwxrwxrwx   1 root     root           0 May 31 12:06 7 ->
/var/run/name_service_door
lrwxrwxrwx   1 root     root           0 May 31 12:06 8
lrwxrwxrwx   1 root     root           0 May 31 12:06 9
lrwxrwxrwx   1 root     root           0 May 31 12:06 a.out ->
/usr/local/libexec/dovecot/dovecot-auth
lrwxrwxrwx   1 root     root           0 May 31 12:06 cwd -> /var/run/dovecot
lrwxrwxrwx   1 root     root           0 May 31 12:06 root -> /
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.12509 ->
/usr/lib/mps/amd64/libnspr4.so
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.12510 ->
/usr/lib/mps/amd64/libplc4.so
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.12511 ->
/usr/lib/mps/amd64/libplds4.so
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.12527 ->
/usr/lib/mps/amd64/libnss3.so
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.12531 ->
/usr/lib/mps/amd64/libsoftokn3.so
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.12532 ->
/usr/lib/mps/amd64/libssl3.so
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.2103 ->
/usr/lib/amd64/libldap.so.5
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.2298 ->
/lib/amd64/libmd5.so.1
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.3883 ->
/lib/amd64/ld.so.1
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.3885 ->
/lib/amd64/libaio.so.1
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.3888 ->
/lib/amd64/libc.so.1
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.3890 ->
/lib/amd64/libcmd.so.1
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.3898 ->
/lib/amd64/libdl.so.1
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.3899 ->
/lib/amd64/libdoor.so.1
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.3910 ->
/lib/amd64/libmp.so.2
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.3911 ->
/lib/amd64/libnsl.so.1
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.3913 ->
/lib/amd64/libpam.so.1
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.3915 ->
/lib/amd64/libpthread.so.1
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.3919 ->
/lib/amd64/librt.so.1
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.3922 ->
/lib/amd64/libscf.so.1
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.3925 ->
/lib/amd64/libsendfile.so.1
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.3926 ->
/lib/amd64/libsocket.so.1
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.3928 ->
/lib/amd64/libthread.so.1
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.3931 ->
/lib/amd64/libuutil.so.1
lrwxrwxrwx   1 root     root           0 May 31 12:06 ufs.85.1.4566 ->
/usr/lib/amd64/libsasl.so.1
---cut---

I configured dovecot to use straight PAM (unix authentication - still working on
the LDAP part), and dovecot-auth plays nice then.  Looks like that may be a
workable fallback if the builtin won't work.

Thanks again,
- Tore


More information about the dovecot mailing list