Panic: from mbox-sync.c; doveadm zlib-plugin
Upgraded to dovecot 2.2.15 (built from sources on Fedora linux), saw intermittent panics:
From dovecot:imap Error: Next message unexpectedly corrupted in mbox file /home/xxxx/mail/Junk E-mail at 1202197 Panic: file mbox-sync.c: line 152 (mbox_sync_read_next_mail): assertion failed: (sync_ctx->input->v_offset != mail_ctx->mail.from_offset || sync_ctx->input->eof) Error: Raw backtrace: /usr/local/lib/dovecot/libdovecot.so.0 [0x274ecf] -> /usr/local/lib/dovecot/libdovecot.so.0 [0x274f4d] -> /usr/local/lib/dovecot/libdovecot.so.0 [0x27446b] -> /usr/local/lib/dovecot/libdovecot-storage.so.0 [0x16633e] -> /usr/local/lib/dovecot/libdovecot-storage.so.0(mbox_sync+0x6b6) [0x168146] -> /usr/local/lib/dovecot/libdovecot-storage.so.0(mbox_storage_sync_init+0x81) [0x169391] -> /usr/local/lib/dovecot/libdovecot-storage.so.0(mailbox_sync_init+0x40) [0x186270] -> /usr/local/lib/dovecot/libdovecot-storage.so.0(mailbox_sync+0x3d) [0x18715d] -> /usr/local/lib/dovecot/libdovecot-storage.so.0(index_storage_get_status+0x74) [0x1b6c44] -> /usr/local/lib/dovecot/libdovecot-storage.so.0(mailbox_get_status+0x5f) [0x1895bf] -> dovecot/imap(imap_status_get+0x7a) [0x806396a] -> dovecot/imap(cmd_status+0x128) [0x80588a8] -> dovecot/imap(command_exec+0x33) [0x805c8e3] -> dovecot/imap [0x805b63f] -> dovecot/imap [0x805b6c3] -> dovecot/imap(client_handl Fatal: master: service(imap): child 25461 killed with signal 6 (core dumps disabled)
They are on hiatus, but thought I should report this anyway. If I get a reproducer, I'll see if I can get core dumps.
The user involved had several procmail processes hung waiting for the lockfile on this mbox. Killing sendmail & dovecot, the procmails & restarting sendmail & dovecot is all that I did after the errors.
It is possible that the last message delivered prior to the errors was truncated ("note the input-eof" in the trace), but this shouldn't result in a panic. I'd expect a warning, then the message truncated to whatever is there, and operations proceeding...
Also, it appears that make install doesn't remove the doveadm zlib plugin, which it seems was obsoleted by http://www.dovecot.org/list/dovecot-cvs/2012-October/021796.html.
This results in: doveadm log find doveadm(root): Error: Module is for different ABI version 2.1.12 (we have 2.2.ABIv15(2.2.15)): /usr/local/lib/dovecot/doveadm/lib10_doveadm_zlib_plugin.so
Removing /usr/local/lib/dovecot/doveadm/lib10_doveadm_zlib_plugin.* fixes this. However, it would be better if make install either removed these from an old installation in an upgrade, renamed the files, or advised the installer to do so.
FWIW: # 2.2.15: /usr/local/etc/dovecot/dovecot.conf # OS: Linux 2.6.22.14-72.fc6 i686 Fedora Core release 6 (Zod) first_valid_gid = 4000 first_valid_uid = 4000 hostname = smtp.example.net login_greeting = Dovecot ready. Unauthorized access is prohibited. mail_access_groups = mail mail_location = mbox:~/mail:INBOX=/var/mail/%n mail_privileged_group = mail namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox "Train As Forgotten" { auto = subscribe } mailbox "Train As Ham" { auto = subscribe } mailbox "Train As Spam" { auto = subscribe } mailbox Trash { auto = subscribe special_use = \Trash } prefix = separator = / } passdb { driver = pam } service imap-login { inet_listener imap { address = imap.v4.example.net imap.v6.example.net port = 143 } inet_listener imaps { address = imap.v4.example.net imap.v6.example.net port = 993 ssl = yes } } service pop3-login { inet_listener pop3 { address = pop.v4.example.net pop.v6.example.net port = 110 } inet_listener pop3s { address = pop.v4.example.net pop.v6.example.net port = 995 ssl = yes } } ssl_ca =
-- Timothe Litt ACM Distinguished Engineer
This communication may not represent the ACM or my employer's views, if any, on the matters discussed.
participants (1)
-
Timothe Litt