[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", '-'
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 =
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