[Dovecot] Coredump while searching a folder
Hi,
while searching through the message bodies in a real folder I got a coredump. I used the master user for this operation. dovecot.index* files have been removed before I started this operation. This looks a bit different to my previous report.
Coredump:
Program terminated with signal 6, Aborted. [New process 1628] #0 0x00002b5e82a8ced5 in raise () from /lib/libc.so.6 #0 0x00002b5e82a8ced5 in raise () from /lib/libc.so.6 No symbol table info available. #1 0x00002b5e82a8e3f3 in abort () from /lib/libc.so.6 No symbol table info available. #2 0x00002b5e8240cd65 in default_fatal_finish (type=<value optimized out>, status=0) at failures.c:164 backtrace = 0x126ef910 "/usr/local/lib/dovecot/libdovecot.so.0 [0x2b5e8240cd52] -> /usr/local/lib/dovecot/libdovecot.so.0 [0x2b5e8240cdba] -> /usr/local/lib/dovecot/libdovecot.so.0(i_error+0) [0x2b5e8240d163] -> /usr/local/l"... #3 0x00002b5e8240cdba in i_internal_fatal_handler (type=LOG_TYPE_PANIC, status=0, fmt=<value optimized out>, args=<value optimized out>) at failures.c:593 No locals. #4 0x00002b5e8240d163 in i_panic (format=<value optimized out>) at failures.c:230 args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fffbc0b8d40, reg_save_area = 0x7fffbc0b8c80}} #5 0x00002b5e83e2ee6d in squat_build_word (ctx=0x127776e0, uid=574, data=0x126ef79f "\a\b\021�\n", char_lengths=0x126ef4b7 "\001\001\001\004\001\001", size=5) at squat-trie.c:876 trie = (struct squat_trie *) 0x12780460 i = 0 j = <value optimized out> bytelen = <value optimized out> __FUNCTION__ = "squat_build_word" #6 0x00002b5e83e2f0ba in squat_trie_build_more (ctx=0x127776e0, uid=<value optimized out>, type=<value optimized out>, input=0x145e2ed1 "<snip email-content sip>"..., size=744) at squat-trie.c:934 _data_stack_cur_id = 5 ret = <value optimized out> #7 0x00002b5e833e57e4 in fts_mailbox_search_next_nonblock (ctx=0x12777600, mail=0x1276d338, tryagain_r=0x7fffbc0b8f7f) at fts-storage.c:220 fctx = (struct fts_search_context *) 0x12731d60 ret = <value optimized out> #8 0x00002b5e821368e0 in mailbox_search_next_nonblock (ctx=0x65c, mail=0x65c, tryagain_r=0x6) at mail-storage.c:1125 No locals. #9 0x0000000000416014 in cmd_search_more (cmd=0x1272ae48) at imap-search.c:346 ctx = (struct imap_search_context *) 0x1272af58 opts = SEARCH_RETURN_ALL sync_flags = <value optimized out> end_time = {tv_sec = 0, tv_usec = 47684912286820} id = 3 id_min = 0 id_max = 0 time_msecs = <value optimized out> tryagain = <value optimized out> lost_data = <value optimized out> __FUNCTION__ = "cmd_search_more" #10 0x00000000004166e0 in cmd_search_more_callback (cmd=0x1272ae48) at imap-search.c:429 client = (struct client *) 0x1272a6e8 finished = <value optimized out> #11 0x00002b5e82416efb in io_loop_handle_timeouts (ioloop=0x126f75d0) at ioloop.c:328 _data_stack_cur_id = 2 #12 0x00002b5e82417a5f in io_loop_handler_run (ioloop=0x126f75d0) at ioloop-epoll.c:184 ctx = (struct ioloop_handler_context *) 0x126f77e0 event = <value optimized out> list = <value optimized out> io = <value optimized out> tv = {tv_sec = 0, tv_usec = 0} t_id = <value optimized out> msecs = 0 ret = 0 call = <value optimized out> #13 0x00002b5e82416c38 in io_loop_run (ioloop=0x126f75d0) at ioloop.c:350 No locals. #14 0x00002b5e82406673 in master_service_run (service=0x126f74a0, callback=0x65c) at master-service.c:496 No locals. #15 0x0000000000419171 in main (argc=1, argv=0x126f7370) at main.c:359 service_flags = <value optimized out> storage_service_flags = <value optimized out> postlogin_socket_path = 0x0 username = 0x0 c = <value optimized out> set_roots = {0x41c340, 0x0} #0 0x00002b5e82a8ced5 in raise () from /lib/libc.so.6 No symbol table info available. #1 0x00002b5e82a8e3f3 in abort () from /lib/libc.so.6 No symbol table info available. #2 0x00002b5e8240cd65 in default_fatal_finish (type=<value optimized out>, status=0) at failures.c:164 backtrace = 0x126ef910 "/usr/local/lib/dovecot/libdovecot.so.0 [0x2b5e8240cd52] -> /usr/local/lib/dovecot/libdovecot.so.0 [0x2b5e8240cdba] -> /usr/local/lib/dovecot/libdovecot.so.0(i_error+0) [0x2b5e8240d163] -> /usr/local/l"... #3 0x00002b5e8240cdba in i_internal_fatal_handler (type=LOG_TYPE_PANIC, status=0, fmt=<value optimized out>, args=<value optimized out>) at failures.c:593 No locals. #4 0x00002b5e8240d163 in i_panic (format=<value optimized out>) at failures.c:230 args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fffbc0b8d40, reg_save_area = 0x7fffbc0b8c80}} #5 0x00002b5e83e2ee6d in squat_build_word (ctx=0x127776e0, uid=574, data=0x126ef79f "\a\b\021�\n", char_lengths=0x126ef4b7 "\001\001\001\004\001\001", size=5) at squat-trie.c:876 trie = (struct squat_trie *) 0x12780460 i = 0 j = <value optimized out> bytelen = <value optimized out> __FUNCTION__ = "squat_build_word" #6 0x00002b5e83e2f0ba in squat_trie_build_more (ctx=0x127776e0, uid=<value optimized out>, type=<value optimized out>, input=0x145e2ed1 "Von:\n", '-' <repeats 20 times>, "\nName: Johann Karl Steiner\nEmail: johann.karl.steiner@gmx.de\n", '-' <repeats 20 times>, "\nNachricht: (bitte Hinweise am Ende dieser NAchricht beachten)\n\nHallo, \n\nhaben Sie meine e-Mai"..., size=744) at squat-trie.c:934 _data_stack_cur_id = 5 ret = <value optimized out> #7 0x00002b5e833e57e4 in fts_mailbox_search_next_nonblock (ctx=0x12777600, mail=0x1276d338, tryagain_r=0x7fffbc0b8f7f) at fts-storage.c:220 fctx = (struct fts_search_context *) 0x12731d60 ret = <value optimized out> #8 0x00002b5e821368e0 in mailbox_search_next_nonblock (ctx=0x65c, mail=0x65c, tryagain_r=0x6) at mail-storage.c:1125 No locals. #9 0x0000000000416014 in cmd_search_more (cmd=0x1272ae48) at imap-search.c:346 ctx = (struct imap_search_context *) 0x1272af58 opts = SEARCH_RETURN_ALL sync_flags = <value optimized out> end_time = {tv_sec = 0, tv_usec = 47684912286820} id = 3 id_min = 0 id_max = 0 time_msecs = <value optimized out> tryagain = <value optimized out> lost_data = <value optimized out> __FUNCTION__ = "cmd_search_more" #10 0x00000000004166e0 in cmd_search_more_callback (cmd=0x1272ae48) at imap-search.c:429 client = (struct client *) 0x1272a6e8 finished = <value optimized out> #11 0x00002b5e82416efb in io_loop_handle_timeouts (ioloop=0x126f75d0) at ioloop.c:328 _data_stack_cur_id = 2 #12 0x00002b5e82417a5f in io_loop_handler_run (ioloop=0x126f75d0) at ioloop-epoll.c:184 ctx = (struct ioloop_handler_context *) 0x126f77e0 event = <value optimized out> list = <value optimized out> io = <value optimized out> tv = {tv_sec = 0, tv_usec = 0} t_id = <value optimized out> ret = 0 call = <value optimized out> #13 0x00002b5e82416c38 in io_loop_run (ioloop=0x126f75d0) at ioloop.c:350 No locals. #14 0x00002b5e82406673 in master_service_run (service=0x126f74a0, callback=0x65c) at master-service.c:496 No locals. #15 0x0000000000419171 in main (argc=1, argv=0x126f7370) at main.c:359 service_flags = <value optimized out> storage_service_flags = <value optimized out> postlogin_socket_path = 0x0 username = 0x0 c = <value optimized out> set_roots = {0x41c340, 0x0}
doveconf -n
# 2.0.beta6 (573cb66e9180): /etc/dovecot/dovecot.conf # OS: Linux 2.6.18-028stab069.6 x86_64 Debian 5.0.4 auth_master_user_separator = * auth_username_format = %n disable_plaintext_auth = no mail_debug = yes mail_location = maildir:~/Maildir mail_plugins = virtual fts fts_squat zlib acl imap_acl namespace { hidden = yes inbox = no list = no location = prefix = mail separator = type = private } namespace { hidden = no inbox = yes location = prefix = separator = . type = private } namespace { hidden = yes inbox = no list = no location = prefix = INBOX. separator = . type = private } namespace { location = maildir:/home/sharedbox/Maildir:INDEX=~/Maildir/shared prefix = shared. separator = . type = public } namespace { list = children location = maildir:/home/%%n/Maildir:INDEX=~/Maildir/shared/%%u prefix = common.%%u. separator = . subscriptions = no type = shared } namespace { hidden = no list = yes location = virtual:~/Maildir/virtual prefix = virtual. separator = . subscriptions = yes type = private } passdb { args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } passdb { args = /etc/dovecot/passwd.masterusers driver = passwd-file master = yes } plugin { acl = vfile:/etc/dovecot/acls:cache_secs=10 acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes.db fts = squat fts_squat = partial=4 full=4 } protocols = imap pop3 service imap { vsz_limit = 1073741824 } ssl_cert = </etc/dovecot/imap.scheff32.de.pem ssl_key = </etc/dovecot/imap.scheff32.de.key userdb { args = system_groups_user=%u blocking=yes driver = passwd }
Regards,
Matthias
Hi,
On Sat, 19 Jun 2010 23:55:02 +0200, Matthias Rieber <ml-dovecot@zu-con.org> wrote:
Hi,
while searching through the message bodies in a real folder I got a coredump. I used the master user for this operation. dovecot.index* files have been removed before I started this operation. This looks a bit different to my previous report.
Coredump:
#4 0x00002b5e8240d163 in i_panic (format=<value optimized out>) at failures.c:230 args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fffbc0b8d40, reg_save_area = 0x7fffbc0b8c80}} #5 0x00002b5e83e2ee6d in squat_build_word (ctx=0x127776e0, uid=574, data=0x126ef79f "\a\b\021�\n", char_lengths=0x126ef4b7 "\001\001\001\004\001\001", size=5) at
and the log says:
Jun 20 13:11:55 shrike dovecot: imap(matthias): Panic: file charset-iconv.c: line 154 (charset_to_utf8): assertion failed: (dest->used != prev_used) Jun 20 13:11:55 shrike dovecot: imap(matthias): Error: Raw backtrace: /usr/local/lib/dovecot/libdovecot.so.0 [0x2ab0ffa5dd52] -> /usr/local/lib/dovecot/libdovecot.so.0 [0x2ab0ffa5ddba] -> /usr/local/lib/dovecot/libdovecot.so.0(i_error+0) [0x2ab0ffa5e163] -> /usr/local/lib/dovecot/libdovecot.so.0(charset_to_utf8+0xe4) [0x2ab0ffa54424] -> /usr/local/lib/dovecot/libdovecot.so.0(message_decoder_decode_next_block+0x413) [0x2ab0ffa4c133] -> /usr/local/lib/dovecot/libdovecot.so.0(message_search_more+0xc7) [0x2ab0ffa4fd67] -> /usr/local/lib/dovecot/libdovecot.so.0(message_search_msg+0x67) [0x2ab0ffa4ff37] -> /usr/local/lib/dovecot/libdovecot-storage.so.0 [0x2ab0ff7c49d0] -> /usr/local/lib/dovecot/libdovecot-storage.so.0 [0x2ab0ff78366d] -> /usr/local/lib/dovecot/libdovecot-storage.so.0(mail_search_args_foreach+0x3c) [0x2ab0ff7837ec] -> /usr/local/lib/dovecot/libdovecot-storage.so.0(index_storage_search_next_nonblock+0x293) [0x2ab0ff7c57e3] -> /usr/local/lib/dovecot/lib20_virtual_plugin.so(virtual_search_next_nonblock+ Jun 20 13:11:55 shrike dovecot: master: Error: service(imap): child 18358 killed with signal 6 (core dumped)
it seems to be caused by a badly encoded email.
Regards,
Matthias
On Sun, 2010-06-20 at 13:14 +0200, Matthias Rieber wrote:
Jun 20 13:11:55 shrike dovecot: imap(matthias): Panic: file charset-iconv.c: line 154 (charset_to_utf8): assertion failed: (dest->used != prev_used)
it seems to be caused by a badly encoded email.
Yes. Any chance you could send me that email? If you can't find it, you can get to it quickly with binary search (e.g. assuming 100 mails):
- disable fts-squat
- use imap:
a login user pass b select mailbox c search 1:100 text hello (crash ->) d search 1:50 text hello (no crash ->) d search 51:100 text hello (crash ->) ..etc..
participants (2)
-
Matthias Rieber
-
Timo Sirainen