dovecot.org/releases/dovecot-1.0.rc23.tar.gz dovecot.org/releases/dovecot-1.0.rc23.tar.gz.sig Documentation is probably the only important thing left before v1.0. * deliver doesn't ever exit with Dovecot's internal exit codes anymore. All its internal exit codes are changed to EX_TEMPFAIL. * mbox: X-Delivery-ID header is now dropped when saving mails. * mbox: If pop3_uidl_format=%m, we generate a unique X-Delivery-ID header when saving mails to make sure the UIDL is unique. + PAM: blocking=yes in args uses an alternative way to do PAM checks. Try it if you're having problems with PAM. + userdb passwd: blocking=yes in args makes the userdb lookups be done in auth worker processes. Set it if you're doing remote NSS lookups (eg. nss_ldap problems are fixed by this). + If PAM child process hasn't responded in two minutes, send KILL signal to it (only with blocking=no) - IMAP: APPEND ate all CPU while waiting for more data from the client (broken in rc22) - mbox: Broken X-UID headers assert-crashed sometimes - mbox: When saving a message to an empty mbox file it got an UID which immediately got incremented. - mbox: Fixed some wrong "uid-last unexpectedly lost" errors. - auth cache: In some situations we crashed if passdb had extra_fields. - auth cache: Special extra_fields weren't saved to auth cache. For example allow_nets restrictions were ignored for cached entries. - A lot of initial login processes could cause auth socket errors in log file at startup, if dovecot-auth started slowly. Now the login processes are started only after dovecot-auth has finished initializing itself. - imap/pop3 proxy: Don't crash if the remote server disconnects before we're logged in. - deliver: Don't bother trying to save the mail twice into the default mailbox (eg. if it's over quota). - mmap_disable=yes + non-Linux was really slow with large dovecot.index.cache files - MySQL couldn't be used as a masterdb - Trash plugin was more or less broken - imap/pop3 couldn't load plugins if they chrooted - imap/pop3-login process could crash in some conditions - checkpassword-reply crashed if USER/HOME wasn't set -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : dovecot.org/pipermail/dovecot-news/attachments/20070220/318dd057/attachment.pgp
> - Trash plugin was more or less brokendoes this mean it should be working now ? with mboxes ? if it does, then I must be doing something wrong or not seeing any effects. Is it actually supposed to purge messages from folders listed in dovecot-trash.conf when dirsize quote is reached ? dovecot.conf protocol lda { ....... mail_plugins = cmusieve quota trash protocol imap { ...... mail_plugins = quota imap_quota trash .... trash = /usr/local/etc/dovecot-trash.conf dovecot-trash.conf 1 Spam 2 Trash 3 Sent
Robert Schetterer
2007-Feb-20 22:32 UTC
[Dovecot] 1.0.rc23 released /trash plugin seems still be broken in parts to my tests
Timo Sirainen schrieb:> dovecot.org/releases/dovecot-1.0.rc23.tar.gz > dovecot.org/releases/dovecot-1.0.rc23.tar.gz.sig > > Documentation is probably the only important thing left before v1.0. > > * deliver doesn't ever exit with Dovecot's internal exit codes anymore. > All its internal exit codes are changed to EX_TEMPFAIL. > * mbox: X-Delivery-ID header is now dropped when saving mails. > * mbox: If pop3_uidl_format=%m, we generate a unique X-Delivery-ID > header when saving mails to make sure the UIDL is unique. > > + PAM: blocking=yes in args uses an alternative way to do PAM checks. > Try it if you're having problems with PAM. > + userdb passwd: blocking=yes in args makes the userdb lookups be done > in auth worker processes. Set it if you're doing remote NSS lookups > (eg. nss_ldap problems are fixed by this). > + If PAM child process hasn't responded in two minutes, send KILL > signal to it (only with blocking=no) > - IMAP: APPEND ate all CPU while waiting for more data from the client > (broken in rc22) > - mbox: Broken X-UID headers assert-crashed sometimes > - mbox: When saving a message to an empty mbox file it got an UID > which immediately got incremented. > - mbox: Fixed some wrong "uid-last unexpectedly lost" errors. > - auth cache: In some situations we crashed if passdb had extra_fields. > - auth cache: Special extra_fields weren't saved to auth cache. > For example allow_nets restrictions were ignored for cached entries. > - A lot of initial login processes could cause auth socket errors > in log file at startup, if dovecot-auth started slowly. Now the > login processes are started only after dovecot-auth has finished > initializing itself. > - imap/pop3 proxy: Don't crash if the remote server disconnects before > we're logged in. > - deliver: Don't bother trying to save the mail twice into the default > mailbox (eg. if it's over quota). > - mmap_disable=yes + non-Linux was really slow with large > dovecot.index.cache files > - MySQL couldn't be used as a masterdb > - Trash plugin was more or less broken > - imap/pop3 couldn't load plugins if they chrooted > - imap/pop3-login process could crash in some conditions > - checkpassword-reply crashed if USER/HOME wasn't set >Hi Timo, i just tested the trash plugin, it works now in parts, which means , mail in trash is deleted, but the new one coming in is bounced Command died with signal 11: "/usr/lib/dovecot/deliver" removing trash makes the server acting corect like this Your message was automatically rejected by Dovecot Mail Delivery Agent. The following reason was given: Quota exceeded -- Mit freundlichen Gruessen Best Regards Robert Schetterer schetterer.org Munich/Bavaria/Germany
On Tue 20 Feb 2007 at 02:09PM, Timo Sirainen wrote:> dovecot.org/releases/dovecot-1.0.rc23.tar.gz > 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