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@mysite): Panic: file mdbox-purge.c: line 225 (mdbox_purge_save_msg): assertion failed: (ret == (off_t)msg_size) doveadm(lbandera@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@mysite): Panic: file mdbox-purge.c: line 225 (mdbox_purge_save_msg): assertion failed: (ret == (off_t)msg_size) doveadm(leonvela@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