[Dovecot] 1.0.rc23 released

Dan Price dp at eng.sun.com
Wed Feb 21 03:24:24 UTC 2007


On Tue 20 Feb 2007 at 02:09PM, Timo Sirainen wrote:
> http://dovecot.org/releases/dovecot-1.0.rc23.tar.gz
> http://dovecot.org/releases/dovecot-1.0.rc23.tar.gz.sig
> 
> Documentation is probably the only important thing left before v1.0.
> 

I'm seeing dovecot-auth in a pretty tight poll loop on rc23, which I
have now deployed.  It's not chewing up so much CPU that the machine
can't deal, so I'll leave it alone for now.  It looks like this:

# truss -d -p 245083
....
 0.3679 pollsys(0x0005CF90, 6, 0xFFBFFAE8, 0x00000000)  = 0
 0.3686 pollsys(0x0005CF90, 6, 0xFFBFFAE8, 0x00000000)  = 0
 0.3779 pollsys(0x0005CF90, 6, 0xFFBFFAE8, 0x00000000)  = 0
 0.3786 pollsys(0x0005CF90, 6, 0xFFBFFAE8, 0x00000000)  = 0
 0.3978 pollsys(0x0005CF90, 6, 0xFFBFFAE8, 0x00000000)  = 0
 0.3982 pollsys(0x0005CF90, 6, 0xFFBFFAE8, 0x00000000)  = 0
 0.4080 pollsys(0x0005CF90, 6, 0xFFBFFAE8, 0x00000000)  = 0
...

[timestamps in column 1 are time elapsed since start of truss]

So what fd's are we polling?

# truss -v poll -p 245083
...
pollsys(0x0005CF90, 6, 0xFFBFFAE8, 0x00000000)  = 0
        fd=5  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=0  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=3  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=7  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=8  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=9  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        timeout: 0.000000000 sec
pollsys(0x0005CF90, 6, 0xFFBFFAE8, 0x00000000)  = 0
        fd=5  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=0  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=3  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=7  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=8  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        fd=9  ev=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL rev=0
        timeout: 0.009000000 sec

(timeout seems to oscillate back and forth between 0 and 0.009).

The pfiles output looks like:

245083: dovecot-auth
  Current rlimit: 256 file descriptors
   0: S_IFSOCK mode:0666 dev:321,0 ino:59624 uid:0 gid:0 size:0
      O_RDWR
        SOCK_STREAM
        SO_SNDBUF(16384),SO_RCVBUF(5120)
        sockname: AF_UNIX 
   1: S_IFCHR mode:0666 dev:314,0 ino:6815752 uid:0 gid:3 rdev:13,2
      O_RDONLY|O_LARGEFILE
      /devices/pseudo/mm at 0:null
   2: S_IFIFO mode:0000 dev:322,0 ino:98020 uid:0 gid:0 size:0
      O_RDWR
   3: S_IFSOCK mode:0666 dev:321,0 ino:25491 uid:0 gid:0 size:0
      O_RDWR|O_NONBLOCK
        SOCK_STREAM
        SO_SNDBUF(16384),SO_RCVBUF(5120)
        sockname: AF_UNIX /var/run/dovecot//login/default
   4: S_IFCHR mode:0644 dev:314,0 ino:99614726 uid:0 gid:3 rdev:190,1
      O_RDONLY|O_LARGEFILE FD_CLOEXEC
      /devices/pseudo/random at 0:urandom
   5: S_IFIFO mode:0000 dev:322,0 ino:98021 uid:0 gid:0 size:0
      O_RDWR FD_CLOEXEC
   6: S_IFIFO mode:0000 dev:322,0 ino:98021 uid:0 gid:0 size:0
      O_RDWR FD_CLOEXEC
   7: S_IFSOCK mode:0666 dev:321,0 ino:61121 uid:0 gid:0 size:0
      O_RDWR|O_NONBLOCK
        SOCK_STREAM
        SO_SNDBUF(16384),SO_RCVBUF(5120)
        sockname: AF_UNIX /var/run/dovecot//login/default
        peername: AF_UNIX 
   8: S_IFSOCK mode:0666 dev:321,0 ino:59618 uid:0 gid:0 size:0
      O_RDWR|O_NONBLOCK
        SOCK_STREAM
        SO_SNDBUF(16384),SO_RCVBUF(5120)
        sockname: AF_UNIX /var/run/dovecot//login/default
        peername: AF_UNIX 
   9: S_IFSOCK mode:0666 dev:321,0 ino:59629 uid:0 gid:0 size:0
      O_RDWR|O_NONBLOCK
        SOCK_STREAM
        SO_SNDBUF(16384),SO_RCVBUF(5120)
        sockname: AF_UNIX /var/run/dovecot//login/default
        peername: AF_UNIX 
  10: S_IFDOOR mode:0444 dev:324,0 ino:43 uid:0 gid:0 size:0
      O_RDONLY|O_LARGEFILE FD_CLOEXEC  door to nscd[162385]
      /var/run/name_service_door

And the pstack is:

245083: dovecot-auth
 ff148a8c pollsys  (5cf90, 6, ffbffae8, 0)
 ff0f5c5c poll     (5cf90, 6, 9, 10624dd3, 22551, 895440) + 7c
 00031fec io_loop_handler_run (5c758, 54670, 18, 5c7b0, 3d, 80000000) + 20
 000319d8 io_loop_run (5c758, 3, 0, 1, bd524, 0) + 34
 00023250 main     (1, ffbffcac, 0, 53c00, 54400, 53c00) + 2b4
 0001af18 _start   (0, 0, 0, 0, 0, 0) + 5c

Config is:

jurassic # /usr/sos/sbin/dovecot -n
# /usr/sos/etc/dovecot.conf
base_dir: /var/run/dovecot/
log_path: /dev/stderr
info_log_path: /dev/stderr
protocols: imap
listen: *:150
ssl_disable: yes
disable_plaintext_auth: no
login_dir: /var/run/dovecot//login
login_executable: /usr/sos/libexec/dovecot/imap-login
mail_extra_groups: mail
mail_location: mbox:~:INBOX=/var/mail/%u:INDEX=%h/Mail/imapd-indices
mail_debug: yes
dotlock_use_excl: yes
mbox_read_locks: dotlock fcntl
mail_executable: /usr/sos/libexec/dovecot/rawlog /usr/sos/libexec/dovecot/imap
auth default:
  mechanisms: plain gssapi
  krb5_keytab: /etc/krb5/krb5.keytab
  passdb:
    driver: pam
  userdb:
    driver: passwd

When a user arrives, they get logged in OK, I think... the truss for that
looks like this:

read(9, " A U T H\t 1\t P L A I N".., 4072)     = 94
pipe()                                          = 11 [12]
forkx(0)                                        = 246563
lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
close(12)                                       = 0
pollsys(0x0005CF90, 7, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 7, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 7, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 7, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 7, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 7, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 7, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 7, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 7, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 7, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 7, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 7, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 7, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 7, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 7, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 7, 0xFFBFFAE8, 0x00000000)  = 1
read(11, "\0\0\001", 5120)                      = 4
close(11)                                       = 0
write(9, " O K\t 1\t u s e r = d d".., 18)      = 18
pollsys(0x0005CF90, 6, 0xFFBFFAE8, 0x00000000)  = 1
read(0, " R E Q U E S T\t 3 5\t 2".., 341)      = 20
getuid()                                        = 0 [0]
getuid()                                        = 0 [0]
door_info(10, 0xFFBFF5E8)                       = 0
door_call(10, 0xFFBFF690)                       = 0
writev(0, 0xFFBFF810, 2)                        = 72
pollsys(0x0005CF90, 6, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 6, 0xFFBFFAE8, 0x00000000)  = 0
pollsys(0x0005CF90, 6, 0xFFBFFAE8, 0x00000000)  = 0
    Received signal #18, SIGCLD, in pollsys() [caught]
      siginfo: SIGCLD CLD_EXITED pid=246563 status=0x0000
pollsys(0x0005CF90, 6, 0xFFBFFAE8, 0x00000000)  Err#4 EINTR
lwp_sigmask(SIG_SETMASK, 0x00020000, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
write(6, "12", 1)                               = 1
setcontext(0xFFBFF490)
pollsys(0x0005CF90, 6, 0xFFBFFAE8, 0x00000000)  = 1
read(5, "12", 512)                              = 1
waitid(P_ALL, 0, 0xFFBFF768, WEXITED|WTRAPPED|WNOHANG) = 0
waitid(P_ALL, 0, 0xFFBFF768, WEXITED|WTRAPPED|WNOHANG) Err#10 ECHILD
pollsys(0x0005CF90, 6, 0xFFBFFAE8, 0x00000000)  = 1
read(9, 0x000642B6, 3978)                       = 0
close(9)                                        = 0


As always, thanks,

        -dp

-- 
Daniel Price - Solaris Kernel Engineering - dp at eng.sun.com - blogs.sun.com/dp


More information about the dovecot mailing list