Panic on service(imap) during FETCH/APPEND some messages

Markus Valentin markus.valentin at open-xchange.com
Tue Jun 8 13:57:51 EEST 2021


> On 31/05/2021 22:32 Alessio Cecchi <alessio at skye.it> wrote:
> 
>  
> Hi,
> 
> when I check "doveadm log errors" I found some fatal error repeated many 
> times by around the same users
> 
> - Panic: file message-part-data.c
> 
> May 31 21:03:46 pop08 dovecot: imap(user1 at email.com) 
> session=<tON64qTDu8OXFBVM>: Error: Mailbox INBOX: UID=3454: 
> imap_bodystructure_parse() failed: message_part lines doesn't match 
> lines in BODYSTRUCTURE
> May 31 21:03:46 pop08 dovecot: imap(user1 at email.com) 
> session=<tON64qTDu8OXFBVM>: Error: Mailbox INBOX: UID=3454: 
> imap_bodystructure_parse() failed: message_part lines doesn't match 
> lines in BODYSTRUCTURE
> May 31 21:03:46 pop08 dovecot: imap(user1 at email.com) 
> session=<tON64qTDu8OXFBVM>: Panic: file message-part-data.c: line 579 
> (message_part_is_attachment): assertion failed: (data != NULL)
> May 31 21:03:46 pop08 dovecot: imap(user1 at email.com) 
> session=<tON64qTDu8OXFBVM>: Error: Raw backtrace: 
> /usr/lib64/dovecot/libdovecot.so.0(backtrace_append+0x42) 
> [0x7f294d7fdac2] -> 
> /usr/lib64/dovecot/libdovecot.so.0(backtrace_get+0x1e) [0x7f294d7fdbce] 
> -> /usr/lib64/dovecot/libdovecot.so.0(+0xf3cde) [0x7f294d80acde] -> 
> /usr/lib64/dovecot/libdovecot.so.0(+0xf3d81) [0x7f294d80ad81] -> 
> /usr/lib64/dovecot/libdovecot.so.0(i_fatal+0) [0x7f294d75c25a] -> 
> /usr/lib64/dovecot/libdovecot.so.0(+0xd377d) [0x7f294d7ea77d] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x3ecbc) [0x7f294db0ccbc] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x3eca4) [0x7f294db0cca4] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(mail_set_attachment_keywords+0xe7) 
> [0x7f294db0dd17] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0xc15a4) 
> [0x7f294db8f5a4] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0xc190e) 
> [0x7f294db8f90e] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(index_mail_init_stream+0x332) 
> [0x7f294db8fd32] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x77428) 
> [0x7f294db45428] -> 
> /usr/lib64/dovecot/libdovecot-storage.soindex-mail-headers.c.0(mail_get_hdr_stream_because+0x5b) 
> [0x7f294db0d6ab] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(index_mail_get_header_stream+0x18a) 
> [0x7f294db8d68a] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(mail_get_header_stream+0x53) 
> [0x7f294db0d493] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(imap_msgpart_open+0x5aa) 
> [0x7f294dbd20aa] -> dovecot/imap [user1 at email.com 18.123.45.76 UID 
> FETCH](+0x235ae) [0x5568ba7fd5ae] -> dovecot/imap [user1 at email.com 
> 18.123.45.76 UID FETCH](+0x210ac) [0x5568ba7fb0ac] -> dovecot/imap 
> [user1 at email.com 18.123.45.76 UID FETCH](imap_fetch_more+0x35) 
> [0x5568ba7fc6e5] -> dovecot/imap [user1 at email.com 18.123.45.76 UID 
> FETCH](cmd_fetch+0x34d) [0x5568ba7ec7ed] -> dovecot/imap 
> [user1 at email.com 18.123.45.76 UID FETCH](command_exec+0x64) 
> [0x5568ba7f9614] -> dovecot/imap [user1 at email.com 18.123.45.76 UID 
> FETCH](+0x1d502) [0x5568ba7f7502] -> dovecot/imap [user1 at email.com 
> 18.123.45.76 UID FETCH](+0x1d591) [0x5568ba7f7591] -> dovecot/imap 
> [user1 at email.com 18.123.45.76 UID FETCH](+0x1d759) [0x5568ba7f7759] -> 
> dovecot/imap [user1 at email.com 18.123.45.76 UID 
> FETCH](client_handle_input+0x205) [0x5568ba7f7a15] -> dovecot/imap 
> [user1 at email.com 18.123.45.76 UID FETCH](client_input+0x79) 
> [0x5568ba7f7ff9] -> 
> /usr/lib64/dovecot/libdovecot.so.0(io_loop_call_io+0x65) 
> [0x7f294d822f45] -> 
> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x12b) 
> [0x7f294d8248fb] -> 
> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run+0x59) 
> [0x7f294d823049]
> May 31 21:03:46 pop08 dovecot: imap(user1 at email.com) 
> session=<tON64qTDu8OXFBVM>: Fatal: master: service(imap): child 21483 
> killed with signal 6 (core dumps disabled - 
> https://dovecot.org/bugreport.html#coredumps)
> 
> - Panic: file imap-bodystructure.c
> 
> May 31 12:06:05 pop01 dovecot: imap(user2 at email.com) 
> session=<3b6TX53DetK5HrcI>: Panic: file imap-bodystructure.c: line 209 
> (part_write_body): assertion failed: (text == ((part->flags & 
> MESSAGE_PART_FLAG_TEXT) != 0))
> May 31 12:06:05 pop01 dovecot: imap(user2 at email.com) 
> session=<3b6TX53DetK5HrcI>: Error: Raw backtrace: 
> /usr/lib64/dovecot/libdovecot.so.0(backtrace_append+0x42) 
> [0x7fe4e8000ac2] -> 
> /usr/lib64/dovecot/libdovecot.so.0(backtrace_get+0x1e) [0x7fe4e8000bce] 
> -> /usr/lib64/dovecot/libdovecot.so.0(+0xf3cde) [0x7fe4e800dcde] -> 
> /usr/lib64/dovecot/libdovecot.so.0(+0xf3d81) [0x7fe4e800dd81] -> 
> /usr/lib64/dovecot/libdovecot.so.0(i_fatal+0) [0x7fe4e7f5f25a] -> 
> /usr/lib64/dovecot/libdovecot.so.0(imap_bodystructure_write+0x263) 
> [0x7fe4e7fd6a53] -> /usr/lib64/dovecot/libdovecot.so.0(+0xbcca3) 
> [0x7fe4e7fd6ca3] -> 
> /usr/lib64/dovecot/libdovecot.so.0(imap_bodystructure_write+0x28a) 
> [0x7fe4e7fd6a7a] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0xc0aa7) 
> [0x7fe4e8391aa7] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0xc1563) 
> [0x7fe4e8392563] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0xc190e) 
> [0x7fe4e839290e] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(index_mail_init_stream+0x332) 
> [0x7fe4e8392d32] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x77428) 
> [0x7fe4e8348428] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(mail_get_stream_because+0x64) 
> [0x7fe4e83105a4] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(index_mail_prefetch+0x96) 
> [0x7fe4e8393bc6] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(mail_prefetch+0x2e) 
> [0x7fe4e830fe4e] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0xc98cd) 
> [0x7fe4e839a8cd] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(index_storage_search_next_nonblock+0x110) 
> [0x7fe4e839ae30] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(mailbox_search_next_nonblock+0x22) 
> [0x7fe4e831eaa2] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(mailbox_search_next+0x3d) 
> [0x7fe4e831eb0d] -> dovecot/imap [user2 at email.com 89.45.183.8 UID 
> fetch](+0x211dc) [0x5649a2e121dc] -> dovecot/imap [user2 at email.com 
> 89.45.183.8 UID fetch](imap_fetch_more+0x35) [0x5649a2e136e5] -> 
> dovecot/imap [user2 at email.com 89.45.183.8 UID fetch](cmd_fetch+0x34d) 
> [0x5649a2e037ed] -> dovecot/imap [user2 at email.com 89.45.183.8 UID 
> fetch](command_exec+0x64) [0x5649a2e10614] -> dovecot/imap 
> [user2 at email.com 89.45.183.8 UID fetch](+0x1d502) [0x5649a2e0e502] -> 
> dovecot/imap [user2 at email.com 89.45.183.8 UID fetch](+0x1d591) 
> [0x5649a2e0e591] -> dovecot/imap [user2 at email.com 89.45.183.8 UID 
> fetch](+0x1d759) [0x5649a2e0e759] -> dovecot/imap [user2 at email.com 
> 89.45.183.8 UID fetch](client_handle_input+0x205) [0x5649a2e0ea15] -> 
> dovecot/imap [user2 at email.com 89.45.183.8 UID fetch](client_input+0x79) 
> [0x5649a2e0eff9] -> 
> /usr/lib64/dovecot/libdovecot.so.0(io_loop_call_io+0x65) [0x7fe4e8025f45]
> May 31 12:06:05 pop01 dovecot: imap(user2 at email.com) 
> session=<3b6TX53DetK5HrcI>: Fatal: master: service(imap): child 29622 
> killed with signal 6 (core dumps disabled - 
> https://dovecot.org/bugreport.html#coredumps)
> 
> - Panic: file index-mail-headers.c
> 
> May 31 18:38:20 pop07 dovecot: imap(user3 at email.com) 
> session=<i5VgbaLD1f5QEZQ5>: Panic: file index-mail-headers.c: line 198 
> (index_mail_parse_header_init): assertion failed: 
> (!mail->data.header_parser_initialized)
> May 31 18:38:20 pop07 dovecot: imap(user3 at email.com) 
> session=<i5VgbaLD1f5QEZQ5>: Error: Raw backtrace: 
> /usr/lib64/dovecot/libdovecot.so.0(backtrace_append+0x42) 
> [0x7f73d1683ac2] -> 
> /usr/lib64/dovecot/libdovecot.so.0(backtrace_get+0x1e) [0x7f73d1683bce] 
> -> /usr/lib64/dovecot/libdovecot.so.0(+0xf3cde) [0x7f73d1690cde] -> 
> /usr/lib64/dovecot/libdovecot.so.0(+0xf3d81) [0x7f73d1690d81] -> 
> /usr/lib64/dovecot/libdovecot.so.0(i_fatal+0) [0x7f73d15e225a] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(index_mail_parse_header_init+0x3b9) 
> [0x7f73d1a11dc9] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(index_mail_parse_headers_internal+0x2b) 
> [0x7f73d1a127eb] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(index_mail_init_stream+0x19f) 
> [0x7f73d1a15b9f] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x77428) 
> [0x7f73d19cb428] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(mail_get_stream_because+0x64) 
> [0x7f73d19935a4] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x77207) 
> [0x7f73d19cb207] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(mail_get_virtual_size+0x38) 
> [0x7f73d1993158] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(maildir_save_finish+0x154) 
> [0x7f73d19cc504] -> 
> /usr/lib64/dovecot/libdovecot-storage.so.0(mailbox_save_cancel+0x3e) 
> [0x7f73d19a239e] -> dovecot/imap [user3 at email.com 35.67.148.57 
> APPEND](+0xf5d2) [0x558743e215d2] -> dovecot/imap [user3 at email.com 
> 35.67.148.57 APPEND](+0x10918) [0x558743e22918] -> dovecot/imap 
> [user3 at email.com 35.67.148.57 APPEND](command_exec+0x64) 
> [0x558743e31614] -> dovecot/imap [user3 at email.com 35.67.148.57 
> APPEND](client_command_cancel+0x49) [0x558743e2edc9] -> dovecot/imap 
> [user3 at email.com 35.67.148.57 APPEND](+0x1cef4) [0x558743e2eef4] -> 
> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handle_timeouts+0x12b) 
> [0x7f73d16a8d3b] -> 
> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0xcc) 
> [0x7f73d16aa89c] -> 
> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run+0x59) 
> [0x7f73d16a9049] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_run+0x38) 
> [0x7f73d16a9288] -> 
> /usr/lib64/dovecot/libdovecot.so.0(master_service_run+0x13) 
> [0x7f73d1613bb3] -> dovecot/imap [user3 at email.com 35.67.148.57 
> APPEND](main+0x342) [0x558743e21202] -> 
> /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f73d11f1555] -> 
> dovecot/imap [user3 at email.com 35.67.148.57 APPEND](+0xf405) [0x558743e21405]
> May 31 18:38:20 pop07 dovecot: imap(user3 at email.com) 
> session=<i5VgbaLD1f5QEZQ5>: Fatal: master: service(imap): child 9786 
> killed with signal 6 (core dumps disabled - 
> https://dovecot.org/bugreport.html#coredumps)
> 
> Are already know bugs?

Hi,

thank you for the coredumps, not all of the bugs are known it seems. I wonder if you could get a coredump for the "message-part-data.c" panic too?

Additionally it would be interesting to see the mail from INBOX of user1 at email.com (UID=3454), that makes it crash. You could use one of the obsfuscate tools from https://www.dovecot.org/tools/ to provide .

The crash that occurred in imap-bodystructure.c is fixed in coming releases.

Markus

> 
> Thanks
> 
> -- 
> Alessio Cecchi
> Postmaster @ http://www.qboxmail.it
> https://www.linkedin.com/in/alessice


More information about the dovecot mailing list