[Dovecot] 1.0.rc23 released
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.
* 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
- Trash plugin was more or less broken
does 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
On Tue, 2007-02-20 at 14:04 -0500, lenny@edpausa.com wrote:
- Trash plugin was more or less broken
does 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 ?
Found two bugs:
If you have multiple namespaces, it'll crash
Multiple trash mailboxes didn't work or crashed.
http://dovecot.org/list/dovecot-cvs/2007-February/007835.html
Timo Sirainen schrieb:
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.
- 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
https://www.schetterer.org Munich/Bavaria/Germany
On Tue, 2007-02-20 at 23:32 +0100, Robert Schetterer wrote:
Command died with signal 11: "/usr/lib/dovecot/deliver"
removing trash makes the server acting corect
Could you get gdb backtrace from the crash? If you run ulimit -c unlimited before deliver, it should write a core file. Then see http://dovecot.org/bugreport.html
On Thu, 2007-02-22 at 16:36 +0200, Timo Sirainen wrote:
On Tue, 2007-02-20 at 23:32 +0100, Robert Schetterer wrote:
Command died with signal 11: "/usr/lib/dovecot/deliver"
removing trash makes the server acting corect
Could you get gdb backtrace from the crash? If you run ulimit -c unlimited before deliver, it should write a core file. Then see http://dovecot.org/bugreport.html
Actually I think this fixes it: http://dovecot.org/list/dovecot-cvs/2007-February/007835.html
If you had multiple trash mailboxes it could crash.
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@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@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@eng.sun.com - blogs.sun.com/dp
On Tue, 2007-02-20 at 19:24 -0800, Dan Price wrote:
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:
:(
Fix: http://dovecot.org/list/dovecot-cvs/2007-February/007771.html
On Thu 22 Feb 2007 at 02:22PM, Timo Sirainen wrote:
On Tue, 2007-02-20 at 19:24 -0800, Dan Price wrote:
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:
:(
Fix: http://dovecot.org/list/dovecot-cvs/2007-February/007771.html
Fix confirmed: I've got rc24 up on my test system. I'll get it rolled out to our larger system... tonight, I hope. Thanks!
-dp
-- Daniel Price - Solaris Kernel Engineering - dp@eng.sun.com - blogs.sun.com/dp
participants (4)
-
Dan Price
-
lenny@edpausa.com
-
Robert Schetterer
-
Timo Sirainen