[Dovecot] Error purging mdbox (damaged) mailbox

Javier Miguel Rodríguez javierdemiguel at us.es
Tue Mar 1 09:18:36 EET 2011


     We are stress testing our preproduction system. One of the "evil" 
tests we made was putting our mailboxes filesystem in read-only in the 
middle of smtp(+lda) delivery. When we try to purge one of the affected 
mailboxes we get error like the followings:
/

doveadm(lbandera at mysite): Panic: file mdbox-purge.c: line 225 
(mdbox_purge_save_msg): assertion failed: (ret == (off_t)msg_size)
doveadm(lbandera at mysite): Error: Raw backtrace: 
/usr/lib64/dovecot/libdovecot.so.0 [0x3b0943bab0] -> 
/usr/lib64/dovecot/libdovecot.so.0(default_fatal_handler+0x35) 
[0x3b0943bb95] -> /usr/lib64/dovecot/libdovecot.so.0 [0x3b0943b4c3] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(mdbox_purge+0xe83) 
[0x3b0986f0c3] -> /usr/bin/doveadm [0x408d65] -> /usr/bin/doveadm 
[0x4093c1] -> /usr/bin/doveadm(doveadm_mail_single_user+0x9d) [0x4094ed] 
-> /usr/bin/doveadm [0x4096fe] -> 
/usr/bin/doveadm(doveadm_mail_try_run+0xb7) [0x409b37] -> 
/usr/bin/doveadm(main+0x2fc) [0x40dddc] -> 
/lib64/libc.so.6(__libc_start_main+0xf4) [0x3b0881d994] -> 
/usr/bin/doveadm [0x408c39]/

/
doveadm(leonvela at mysite): Panic: file mdbox-purge.c: line 225 
(mdbox_purge_save_msg): assertion failed: (ret == (off_t)msg_size)
doveadm(leonvela at mysite): Error: Raw backtrace: 
/usr/lib64/dovecot/libdovecot.so.0 [0x3b0943bab0] -> 
/usr/lib64/dovecot/libdovecot.so.0(default_fatal_handler+0x35) 
[0x3b0943bb95] -> /usr/lib64/dovecot/libdovecot.so.0 [0x3b0943b4c3] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(mdbox_purge+0xe83) 
[0x3b0986f0c3] -> /usr/bin/doveadm [0x408d65] -> /usr/bin/doveadm 
[0x4093c1] -> /usr/bin/doveadm(doveadm_mail_single_user+0x9d) [0x4094ed] 
-> /usr/bin/doveadm [0x4096fe] -> 
/usr/bin/doveadm(doveadm_mail_try_run+0xb7) [0x409b37] -> 
/usr/bin/doveadm(main+0x2fc) [0x40dddc] -> 
/lib64/libc.so.6(__libc_start_main+0xf4) [0x3b0881d994] -> 
/usr/bin/doveadm [0x408c39]/

     The mailboxes are damaged, but maybe doveadm should not crash on 
them, should handle the error more gracefully and exit with a error status.

     Regards

     Javier


More information about the dovecot mailing list