http://dovecot.org/releases/2.2/rc/dovecot-2.2.13.rc1.tar.gz http://dovecot.org/releases/2.2/rc/dovecot-2.2.13.rc1.tar.gz.sig
There have been a ton of smaller and some larger changes since v2.2.12, so I thought I'd first make a RC release and the final v2.2.13 tomorrow. Please try it out!
BTW. I've read most of the mails again in Dovecot mailing list, but there are still a few reported bugs I decided to leave until later. Anyway feel free to re-send any bug reports for things that haven't been fixed in v2.2.13 yet.
* Fixed a DoS attack against imap/pop3-login processes. If SSL/TLS
handshake was started but wasn't finished, the login process
attempted to eventually forcibly disconnect the client, but failed
to do it correctly. This could have left the connections hanging
arond for a long time. (Affected Dovecot v1.1+)
+ mdbox: Added mdbox_purge_preserve_alt setting to keep the file
within alt storage during purge. (Should become enforced in v2.3.0?)
+ fts: Added support for parsing attachments via Apache Tika. Enable
with: plugin { fts_tika = http://tikahost:9998/tika/ }
+ virtual plugin: Delay opening backend mailboxes until it's necessary.
This requires mailbox_list_index=yes to work. (Currently IMAP IDLE
command still causes all backend mailboxes to be opened.)
+ mail_never_cache_fields=* means now to disable all caching. This may
be a useful optimization as doveadm/dsync parameter for some admin
tasks which shouldn't really update the cache file.
+ IMAP: Return SPECIAL-USE flags always for LSUB command.
- pop3 server was still crashing in v2.2.12 with some settings
- maildir: Various fixes and improvements to handling compressed mails,
especially when they have broken/missing S=sizes in filenames.
- fts-lucene, fts-solr: Fixed crash on search when the index contained
duplicate entries.
- Many fixes and performance improvements to dsync and replication
- director was somewhat broken when there were exactly two directors
in the ring. It caused errors about "weak users" getting stuck.
- mail_attachment_dir: Attachments with the last base64-encoded line
longer than the rest wasn't handled correctly.
- IMAP: SEARCH/SORT PARTIAL was handled completely wrong in v2.2.11+
- acl: Global ACL file handling was broken when multiple entries
matched the mailbox name. (Only the first entry was used.)
On 05/08/2014 08:37 AM, Timo Sirainen wrote:
http://dovecot.org/releases/2.2/rc/dovecot-2.2.13.rc1.tar.gz http://dovecot.org/releases/2.2/rc/dovecot-2.2.13.rc1.tar.gz.sig
There have been a ton of smaller and some larger changes since v2.2.12, so I thought I'd first make a RC release and the final v2.2.13 tomorrow. Please try it out!
Installed here. OK so far ...
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Timo Sirainen - 2014-05-08 17:37:
BTW. I've read most of the mails again in Dovecot mailing list, but there are still a few reported bugs I decided to leave until later. Anyway feel free to re-send any bug reports for things that haven't been fixed in v2.2.13 yet.
First report on 2014-01-11 with 2.2.10; bug still present:
2014-05-09T10:18:18+02:00 server/ip dovecot: imap(user@domain): Error: Corrupted transaction log file ./domain/user/mail/.Drafts/dovecot.index.log seq 16777216: log file shrank (540 < 6144) (sync_offset=6144) 2014-05-09T10:18:18+02:00 server/ip dovecot: imap(user@domain): Panic: file buffer.c: line 307 (buffer_set_used_size): assertion failed: (used_size <= buf->alloc) 2014-05-09T10:18:24+02:00 server/ip dovecot: imap(user@domain): Fatal: master: service(imap): child 4098 killed with signal 6 (core dumped)
Program terminated with signal 6, Aborted. #0 0x00000033c9a32925 in raise () from /lib64/libc.so.6
(gdb) bt #0 0x00000033c9a32925 in raise () from /lib64/libc.so.6 #1 0x00000033c9a34105 in abort () from /lib64/libc.so.6 #2 0x00007f50fd3302b0 in default_fatal_finish () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot.so.0 #3 0x00007f50fd330326 in i_internal_fatal_handler () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot.so.0 #4 0x00007f50fd2e560f in i_panic () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot.so.0 #5 0x00007f50fd32b219 in buffer_set_used_size () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot.so.0 #6 0x00007f50fd67ccb0 in mail_transaction_log_file_open () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #7 0x00007f50fd679548 in mail_transaction_log_open () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #8 0x00007f50fd65f0c4 in mail_index_open_files () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #9 0x00007f50fd65f400 in mail_index_open () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #10 0x00007f50fd65089c in index_storage_mailbox_open () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #11 0x00007f50fd5ea8fa in maildir_mailbox_open_existing () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #12 0x00007f50fd5ea9cf in maildir_mailbox_open () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #13 0x00007f50fd6215b4 in mailbox_open_full () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #14 0x00007f50fd62176f in mailbox_open () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #15 0x0000000000419d10 in client_open_save_dest_box () #16 0x000000000040bf67 in cmd_append () #17 0x0000000000418b0d in command_exec () #18 0x0000000000417ae4 in client_command_input () #19 0x0000000000417c25 in client_command_input () #20 0x0000000000418095 in client_handle_input () #21 0x000000000041896f in client_input () #22 0x00007f50fd3414bd in io_loop_call_io () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot.so.0 #23 0x00007f50fd342885 in io_loop_handler_run_internal () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot.so.0 #24 0x00007f50fd341549 in io_loop_handler_run () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot.so.0 #25 0x00007f50fd3415d8 in io_loop_run () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot.so.0 #26 0x00007f50fd2eaa63 in master_service_run () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot.so.0 #27 0x00000000004227e7 in main () (gdb)
Thanks.
-- MU
Sorry for replying to myself but now I'm able to show gdb backtrace with debugging symbols for dovecot 2.2.13 crash. See below.
Thanks.
MU
Maciej Uhlig - 2014-05-09 10:59:
Timo Sirainen - 2014-05-08 17:37:
BTW. I've read most of the mails again in Dovecot mailing list, but there are still a few reported bugs I decided to leave until later. Anyway feel free to re-send any bug reports for things that haven't been fixed in v2.2.13 yet. First report on 2014-01-11 with 2.2.10; bug still present:
2014-05-09T10:18:18+02:00 server/ip dovecot: imap(user@domain): Error: Corrupted transaction log file ./domain/user/mail/.Drafts/dovecot.index.log seq 16777216: log file shrank (540 < 6144) (sync_offset=6144) 2014-05-09T10:18:18+02:00 server/ip dovecot: imap(user@domain): Panic: file buffer.c: line 307 (buffer_set_used_size): assertion failed: (used_size <= buf->alloc) 2014-05-09T10:18:24+02:00 server/ip dovecot: imap(user@domain): Fatal: master: service(imap): child 4098 killed with signal 6 (core dumped)
Program terminated with signal 6, Aborted. #0 0x00000033c9a32925 in raise () from /lib64/libc.so.6
(gdb) bt full #0 0x00000033c9a32925 in raise () from /lib64/libc.so.6 No symbol table info available. #1 0x00000033c9a34105 in abort () from /lib64/libc.so.6 No symbol table info available. #2 0x00007fe4bc744540 in default_fatal_finish (type=<value optimized out>, status=0) at failures.c:193 backtrace = 0xcd84c8 "/usr/local/dovecot-2.2.13/lib/dovecot/libdovecot.so.0(+0x6d54a) [0x7fe4bc74454a] -> /usr/local/dovecot-2.2.13/lib/dovecot/libdovecot.so.0(+0x6d5b6) [0x7fe4bc7445b6] -> /usr/local/dovecot-2.2.13/lib/do"... #3 0x00007fe4bc7445b6 in i_internal_fatal_handler (ctx=0x7fff2897c1a0, format=<value optimized out>, args=<value optimized out>) at failures.c:657 status = 0 #4 0x00007fe4bc6f960f in i_panic ( format=0x19ea <Address 0x19ea out of bounds>) at failures.c:267 ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0} args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fff2897c270, reg_save_area = 0x7fff2897c1b0}} #5 0x00007fe4bc73f4a9 in buffer_set_used_size (_buf=<value optimized out>, used_size=<value optimized out>) at buffer.c:307 buf = <value optimized out> __FUNCTION__ = "buffer_set_used_size" #6 0x00007fe4bca90cb0 in mail_transaction_log_file_open (file=0xcfc9b0) ---Type <return> to continue, or q <return> to quit--- at mail-transaction-log-file.c:930 index = 0xcfb740 i = 0 ignore_estale = true ret = <value optimized out> #7 0x00007fe4bca8d548 in mail_transaction_log_open (log=0xcfc760) at mail-transaction-log.c:86 file = 0xcfc9b0 ret = <value optimized out> #8 0x00007fe4bca730c4 in mail_index_open_files (index=0xcfb740, flags=17) at mail-index.c:477 ret = <value optimized out> created = false #9 0x00007fe4bca73400 in mail_index_open (index=0xcfb740, flags=17) at mail-index.c:593 ret = <value optimized out> __FUNCTION__ = "mail_index_open" #10 0x00007fe4bca6489c in index_storage_mailbox_open (box=0xcf9f00, move_to_memory=false) at index-storage.c:255 ibox = 0xcfa348 index_flags = 17 ret = <value optimized out> __FUNCTION__ = "index_storage_mailbox_open" ---Type <return> to continue, or q <return> to quit--- #11 0x00007fe4bc9fe8fa in maildir_mailbox_open_existing (box=0xcf9f00) at maildir-storage.c:305 mbox = 0xcf9f00 #12 0x00007fe4bc9fe9cf in maildir_mailbox_open (box=0xcf9f00) at maildir-storage.c:349 box_path = <value optimized out> root_dir = <value optimized out> st = {st_dev = 25165824, st_ino = 140620396844928, st_nlink = 325, st_mode = 3164929696, st_uid = 32740, st_gid = 13468392, __pad0 = 0, st_rdev = 13606656, st_size = 13608984, st_blksize = 140620391160351, st_blocks = 13606656, st_atim = { tv_sec = 2, tv_nsec = 13606656}, st_mtim = { tv_sec = 140733874423128, tv_nsec = 1}, st_ctim = { tv_sec = 140620394087488, tv_nsec = 13606656}, __unused = { 13606656, 140733874423128, 0}} #13 0x00007fe4bca355b4 in mailbox_open_full (box=0xcf9f00, input=<value optimized out>) at mail-storage.c:1045 _data_stack_cur_id = 4 ret = <value optimized out> #14 0x00007fe4bca3576f in mailbox_open (box=0xcf9f00) at mail-storage.c:1087 No locals. #15 0x0000000000412478 in select_open (ctx=0xcf77e0, mailbox=<value optimized out>, readonly=false) at cmd-select.c:302 ---Type <return> to continue, or q <return> to quit--- client = 0xcf6ed0 status = {messages = 681035384, recent = 32767, unseen = 3374401317, uidvalidity = 51, uidnext = 0, first_unseen_seq = 0, first_recent_uid = 0, last_cached_seq = 0, highest_modseq = 140733874423388, highest_pvt_modseq = 140733874423424, keywords = 0xce3af8, permanent_flags = 13515816, permanent_keywords = 0, allow_new_keywords = 0, nonpermanent_modseqs = 0, no_modseq_tracking = 0, have_guids = 0, have_save_guids = 0, have_only_guid128 = 0} flags = <value optimized out> ret = 0 #16 0x0000000000412a83 in cmd_select_full (cmd=0xcf76e0) at cmd-select.c:435 ctx = 0xcf77e0 ret = <value optimized out> client = 0xcf6ed0 args = 0xce3ac8 list_args = 0x33c9d8fe80 mailbox = 0xcd82a8 "sent-mail" error = <value optimized out> #17 cmd_select (cmd=0xcf76e0) at cmd-select.c:444 No locals. #18 0x0000000000418b0d in command_exec (cmd=0xcf76e0) at imap-commands.c:158 ---Type <return> to continue, or q <return> to quit--- hook = 0xce1110 ret = <value optimized out> #19 0x0000000000417ae4 in client_command_input (cmd=0xcf76e0) at imap-client.c:778 client = 0xcf6ed0 command = <value optimized out> __FUNCTION__ = "client_command_input" #20 0x0000000000417c25 in client_command_input (cmd=0xcf76e0) at imap-client.c:839 client = 0xcf6ed0 command = <value optimized out> __FUNCTION__ = "client_command_input" #21 0x0000000000418095 in client_handle_next_command (client=0xcf6ed0) at imap-client.c:877 No locals. #22 client_handle_input (client=0xcf6ed0) at imap-client.c:889 _data_stack_cur_id = 3 ret = false remove_io = false handled_commands = false __FUNCTION__ = "client_handle_input" #23 0x000000000041896f in client_input (client=0xcf6ed0) at imap-client.c:931 cmd = <value optimized out> ---Type <return> to continue, or q <return> to quit--- output = 0xcf0aa0 bytes = 20 __FUNCTION__ = "client_input" #24 0x00007fe4bc75574d in io_loop_call_io (io=0xcf0b70) at ioloop.c:441 ioloop = 0xce0750 t_id = 2 __FUNCTION__ = "io_loop_call_io" #25 0x00007fe4bc756b15 in io_loop_handler_run_internal ( ioloop=<value optimized out>) at ioloop-epoll.c:220 ctx = 0xce13f0 events = <value optimized out> event = 0xce2260 list = 0xcf0bd0 io = <value optimized out> tv = {tv_sec = 1799, tv_usec = 999593} msecs = <value optimized out> ret = 1 i = <value optimized out> j = 0 call = <value optimized out> __FUNCTION__ = "io_loop_handler_run_internal" #26 0x00007fe4bc7557d9 in io_loop_handler_run (ioloop=0xce0750) at ioloop.c:488 No locals. ---Type <return> to continue, or q <return> to quit--- #27 0x00007fe4bc755868 in io_loop_run (ioloop=0xce0750) at ioloop.c:465 __FUNCTION__ = "io_loop_run" #28 0x00007fe4bc6fea63 in master_service_run (service=0xce05e0, callback=<value optimized out>) at master-service.c:566 No locals. #29 0x00000000004227e7 in main (argc=2, argv=0xce0390) at main.c:400 set_roots = {0x42b300, 0x0} login_set = { auth_socket_path = 0xcd8050 "\210\200", <incomplete sequence \315>, postlogin_socket_path = 0xcd8088 "", postlogin_timeout_secs = 60, callback = 0x422980 <login_client_connected>, failure_callback = 0x422cf0 <login_client_failed>, request_auth_token = 1} service_flags = <value optimized out> storage_service_flags = <value optimized out> username = <value optimized out> c = <value optimized out> (gdb)
Timo Sirainen - 2014-05-08 17:37:
There have been a ton of smaller and some larger changes since v2.2.12, so I thought I'd first make a RC release and the final v2.2.13 tomorrow. Please try it out!
Actually there were seven identical segfaults for the same user in three minutes:
Program terminated with signal 11, Segmentation fault. #0 0x00007f54dc1da4c5 in mail_cache_header_fields_read () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0
(gdb) bt #0 0x00007f54dc1da4c5 in mail_cache_header_fields_read () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #1 0x00007f54dc1d821a in mail_cache_open_and_verify () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #2 0x00007f54dc1d9e9d in mail_cache_register_get_list () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #3 0x00007f54dc1cec24 in index_mailbox_get_metadata () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #4 0x00007f54dc16a520 in maildir_mailbox_get_metadata () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #5 0x00007f54dc1a133e in mailbox_get_metadata () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #6 0x00007f54dc1cf7d7 in index_copy_cache_fields () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #7 0x00007f54dc168daa in maildir_save_add () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #8 0x00007f54dc16512e in maildir_copy () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #9 0x00007f54db81b521 in notify_copy () from /usr/local/dovecot/lib/dovecot/lib15_notify_plugin.so #10 0x00007f54dbc2b363 in quota_copy () from /usr/local/dovecot/lib/dovecot/lib10_quota_plugin.so #11 0x00007f54dc1a2a5d in mailbox_copy () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #12 0x00007f54dc1a2bcd in mailbox_move () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0 #13 0x000000000040c667 in cmd_copy_full () #14 0x0000000000418b0d in command_exec () #15 0x0000000000417ae4 in client_command_input () #16 0x0000000000417c25 in client_command_input () #17 0x0000000000418095 in client_handle_input () #18 0x000000000041896f in client_input () #19 0x00007f54dbec14bd in io_loop_call_io () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot.so.0 #20 0x00007f54dbec2885 in io_loop_handler_run_internal () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot.so.0 #21 0x00007f54dbec1549 in io_loop_handler_run () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot.so.0 #22 0x00007f54dbec15d8 in io_loop_run () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot.so.0 #23 0x00007f54dbe6aa63 in master_service_run () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot.so.0 #24 0x00000000004227e7 in main () (gdb)
Thanks.
-- MU
Hello
On 05/09/2014 01:35 PM, Maciej Uhlig wrote:
(gdb) bt Could you post the output of "bt full", though judging by your post in january, you do not have the symbols to go with it.
Please also post your doveconf -n
br, Teemu Huovila
Teemu Huovila - 2014-05-09 12:51:
Could you post the output of "bt full", though judging by your post in january, you do not have the symbols to go with it.
Right.
Please also post your doveconf -n
# 2.2.13.rc1: /dir1/dir3/dovecot/dovecot.conf # OS: Linux 2.6.32-431.1.2.0.1.el6.x86_64 x86_64 CentOS release 6.5 (Final) auth_mechanisms = plain login auth_socket_path = /dir1/dir2/dovecot/auth-userdb base_dir = /dir1/dir2/dovecot/ default_client_limit = 2000 default_process_limit = 500 default_vsz_limit = 1 G deliver_log_format = msgid=%m size=%p: %$ disable_plaintext_auth = no lda_mailbox_autocreate = yes mail_gid = 5000 mail_home = /dir4/%d/%n mail_location = maildir:~/mail mail_plugin_dir = /usr/local/dovecot/lib/dovecot mail_plugins = quota notify mail_uid = 5000 managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave imapflags passdb { args = failure_show_msg=yes imap driver = pam } passdb { args = /dir1/dir3/dovecot/dovecot-ldap.conf.ext driver = ldap } plugin { mail_log_events = append delete undelete expunge copy mailbox_delete mailbox_rename quota = maildir:User quota quota_rule = *:storage=500M quota_rule2 = Trash:storage=+10%% quota_rule3 = Spam:storage=+10%% quota_warning = storage=90%% quota-warning 90 %u quota_warning2 = storage=80%% quota-warning 80 %u sieve = /dir4/sieve/%u.sieve sieve_after = /dir4/sieve/after/ sieve_before = /dir4/sieve/before/ sieve_extensions = +imapflags sieve_global_dir = /dir4/sieve/global/ sieve_global_path = /dir4/sieve/0default.sieve } postmaster_address = postmaster@domain protocols = imap pop3 lmtp sieve quota_full_tempfail = yes sendmail_path = /usr/lib/sendmail service anvil { client_limit = 2005 } service auth { client_limit = 2500 } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } process_min_avail = 8 service_count = 512 vsz_limit = 256 M } service imap { executable = imap postlogin vsz_limit = 256 M } service lmtp { drop_priv_before_exec = yes inet_listener lmtp { address = ip1 port = 24 } process_min_avail = 8 vsz_limit = 1 G } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 } service_count = 512 } service pop3 { executable = pop3 postlogin } service postlogin { executable = script-login /dir1/dir3/dovecot/postlogin.sh } service quota-warning { executable = script /dir1/dir3/dovecot/quota-warn.sh unix_listener quota-warning { user = vmail } user = vmail } ssl_cert = </dir1/dir3/certs/dovecot.pem ssl_key = </dir1/dir3/certs/dovecot.key submission_host = ip2 userdb { driver = passwd } userdb { args = /dir1/dir3/dovecot/dovecot-ldap.conf.ext driver = ldap } valid_chroot_dirs = /dir4 protocol lmtp { mail_plugins = quota notify sieve } protocol lda { info_log_path = log_path = mail_plugins = quota notify sieve } protocol imap { mail_max_userip_connections = 20 mail_plugins = quota notify imap_quota mail_log } protocol pop3 { pop3_client_workarounds = outlook-no-nuls oe-ns-eoh pop3_uidl_format = %08Xu%08Xv } local_name imap.us.edu.pl { ssl_cert = </dir1/dir3/certs/imap.pem ssl_key = </dir1/dir3/certs/imap.key } local_name pop3.us.edu.pl { ssl_cert = </dir1/dir3/certs/pop3.pem ssl_key = </dir1/dir3/certs/pop3.key
Thanks.
-- MU
On 9.5.2014, at 13.35, Maciej Uhlig <maciej.uhlig@us.edu.pl> wrote:
Timo Sirainen - 2014-05-08 17:37:
There have been a ton of smaller and some larger changes since v2.2.12, so I thought I'd first make a RC release and the final v2.2.13 tomorrow. Please try it out!
Actually there were seven identical segfaults for the same user in three minutes:
Program terminated with signal 11, Segmentation fault. #0 0x00007f54dc1da4c5 in mail_cache_header_fields_read () from /usr/local/dovecot-2.2.13.rc1/lib/dovecot/libdovecot-storage.so.0
I thought this was fixed already, but I guess not. It would be helpful if you could either
a) Enable debug symbols so the backtrace would show exactly where it crashes
and/or
b) Send me the user's dovecot.index* files so I can try to reproduce the crash. (The .cache file may contain some cached headers and such, so might be problematic.) This probably isn't INBOX but some other folder that crashes.
Anyway, the problem is that the dovecot.index.cache file is somewhat broken. Deleting it will fix the crashes.
Timo Sirainen - 2014-05-09 15:27:
I thought this was fixed already, but I guess not. It would be helpful if you could either
a) Enable debug symbols so the backtrace would show exactly where it crashes
Here you are:
Core was generated by `dovecot/imap postlogin'. Program terminated with signal 11, Segmentation fault. #0 0x00007f636c1e44c5 in mail_cache_header_fields_read (cache=0x65fb00) at mail-cache-fields.c:370 370 for (p = names; p != end && *p != '\0'; p++) ; Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.132.el6.x86_64 (gdb) bt full #0 0x00007f636c1e44c5 in mail_cache_header_fields_read (cache=0x65fb00) at mail-cache-fields.c:370 field_hdr = 0x67c680 field = {name = 0x0, idx = 0, type = MAIL_CACHE_FIELD_FIXED_SIZE, field_size = 0, decision = MAIL_CACHE_DECISION_NO, last_used = 0} last_used = 0x67c68c sizes = 0xc67c68c types = 0x1867c68c <Address 0x1867c68c out of bounds> decisions = 0x1b67c68c <Address 0x1b67c68c out of bounds> p = 0x1e67c68c <Address 0x1e67c68c out of bounds> names = <value optimized out> end = 0x5267c680 <Address 0x5267c680 out of bounds> orig_key = 0x65a5d0 "mime.parts" fidx = <value optimized out> new_fields_count = <value optimized out> dec = <value optimized out> max_drop_time = 1396994400 offset = 336 i = <value optimized out> __FUNCTION__ = "mail_cache_header_fields_read" #1 0x00007f636c1e221a in mail_cache_open_and_verify (cache=0x65fb00) at mail-cache.c:497 ret = 1 #2 0x00007f636c1e3e9d in mail_cache_register_get_list (cache=0x65fb00, pool=0x673890, count_r=0x7fff745e1818) at mail-cache-fields.c:194 list = <value optimized out> i = <value optimized out> #3 0x00007f636c1d8c24 in get_metadata_cache_fields (box=0x65cf10, items=MAILBOX_METADATA_CACHE_FIELDS, ---Type <return> to continue, or q <return> to quit--- metadata_r=0x7fff745e18d0) at index-status.c:206 cache_fields = <value optimized out> i = <value optimized out> count = <value optimized out> fields = <value optimized out> dec = <value optimized out> cf = <value optimized out> #4 index_mailbox_get_metadata (box=0x65cf10, items=MAILBOX_METADATA_CACHE_FIELDS, metadata_r=0x7fff745e18d0) at index-status.c:392 No locals. #5 0x00007f636c174520 in maildir_mailbox_get_metadata (box=<value optimized out>, items=MAILBOX_METADATA_CACHE_FIELDS, metadata_r=0x7fff745e18d0) at maildir-storage.c:548 mbox = 0x65cf10 #6 0x00007f636c1ab33e in mailbox_get_metadata (box=0x65cf10, items=MAILBOX_METADATA_CACHE_FIELDS, metadata_r=0x7fff745e18d0) at mail-storage.c:1553 __FUNCTION__ = "mailbox_get_metadata" #7 0x00007f636c1d97d7 in index_copy_cache_fields (ctx=0x66d470, src_mail=0x668c50, dest_seq=4) at index-storage.c:859 src_metadata = {guid = '\000' <repeats 15 times>, virtual_size = 0, cache_fields = 0x6732f8, precache_fields = 0, backend_ns_prefix = 0x0, backend_ns_type = 0} dest_metadata = {guid = '\000' <repeats 15 times>, virtual_size = 0, cache_fields = 0x0, precache_fields = 0, backend_ns_prefix = 0x0, backend_ns_type = 0} field = <value optimized out> buf = <value optimized out> _data_stack_cur_id = 5 #8 0x00007f636c172daa in maildir_save_add (_ctx=0x66d470, ---Type <return> to continue, or q <return> to quit--- tmp_fname=0x6334b0 "1400137850.M128554P51577.dzeta.us.edu.pl", src_mail=0x668c50) at maildir-save.c:222 ctx = 0x66d470 mdata = 0x66d480 mf = 0x66d6a8 input = <value optimized out> keyword_count = 0 __FUNCTION__ = "maildir_save_add" #9 0x00007f636c16f12e in maildir_copy_hardlink (ctx=0x66d470, mail=0x668c50) at maildir-copy.c:108 dest_mbox = 0x65cf10 dest_fname = 0x6334b0 "1400137850.M128554P51577.dzeta.us.edu.pl" size = <value optimized out> old_abort = <value optimized out> mf = <value optimized out> do_ctx = { dest_path = 0x6334e0 "/pracmail/us.edu.pl/malgorzata.gornik-durose/mail/.Podr&APMBfA-e/tmp/1400137850.M128554P51577.dzeta.us.edu.pl", success = 1} guid = <value optimized out> src_mbox = <value optimized out> path = 0x66e480 "\020\317e" vsize = <value optimized out> #10 maildir_copy (ctx=0x66d470, mail=0x668c50) at maildir-copy.c:137 _data_stack_cur_id = 4 _t = <value optimized out> mbox = <value optimized out> __FUNCTION__ = "maildir_copy" #11 0x00007f636b825521 in notify_copy (ctx=0x66d470, mail=0x668c50) at notify-storage.c:107 ---Type <return> to continue, or q <return> to quit--- lt = 0x660020 lbox = 0x65d6c8 ret = <value optimized out> #12 0x00007f636bc35363 in quota_copy (ctx=0x66d470, mail=0x668c50) at quota-storage.c:220 t = 0x665e60 qt = 0x667350 qbox = 0x65d530 #13 0x00007f636c1aca5d in mailbox_copy (_ctx=<value optimized out>, mail=0x668c50) at mail-storage.c:2149 ctx = 0x66d470 t = 0x665e60 keywords = 0x0 pvt_flags = 0 backend_mail = 0x668c50 ret = <value optimized out> __FUNCTION__ = "mailbox_copy" #14 0x00007f636c1acbcd in mailbox_move (_ctx=<value optimized out>, mail=0x668c50) at mail-storage.c:2170 ctx = 0x66d470 #15 0x000000000040c667 in fetch_and_copy (cmd=0x6526f0, move=true) at cmd-copy.c:67 search_ctx = 0x6689b0 src_trans = 0x6673c0 srcset_ctx = {str = 0x633348, first_uid = 0, last_uid = 4294967295} ret = 1 save_ctx = 0x0 mail = 0x668c50 copy_count = 1 src_uidset = 0x633348 ---Type <return> to continue, or q <return> to quit--- #16 cmd_copy_full (cmd=0x6526f0, move=true) at cmd-copy.c:123 client = 0x651ee0 dest_storage = <value optimized out> destbox = 0x65cf10 t = 0x665e60 src_trans = <value optimized out> search_args = 0x65bf00 messageset = 0x63ec30 "21478" mailbox = 0x63ec38 "Podr&APMBfA-e" src_uidset = <value optimized out> sync_flags = 0 imap_flags = 0 changes = {pool = 0x0, uid_validity = 1810758898, saved_uids = {arr = {buffer = 0x4, element_size = 222429762624}, v = 0x4, v_modifiable = 0x4}, ignored_modseq_changes = 0, changed = false, no_read_perm = false} copy_count = <value optimized out> msg = <value optimized out> ret = <value optimized out> __FUNCTION__ = "cmd_copy_full" #17 0x0000000000418b0d in command_exec (cmd=0x6526f0) at imap-commands.c:158 hook = 0x63c110 ret = <value optimized out> #18 0x0000000000417ae4 in client_command_input (cmd=0x6526f0) at imap-client.c:778 client = 0x651ee0 command = <value optimized out> __FUNCTION__ = "client_command_input" ---Type <return> to continue, or q <return> to quit--- #19 0x0000000000417c25 in client_command_input (cmd=0x6526f0) at imap-client.c:839 client = 0x651ee0 command = <value optimized out> __FUNCTION__ = "client_command_input" #20 0x0000000000418095 in client_handle_next_command (client=0x651ee0) at imap-client.c:877 No locals. #21 client_handle_input (client=0x651ee0) at imap-client.c:889 _data_stack_cur_id = 3 ret = false remove_io = false handled_commands = false __FUNCTION__ = "client_handle_input" #22 0x000000000041896f in client_input (client=0x651ee0) at imap-client.c:931 cmd = <value optimized out> output = 0x64bad0 bytes = 32 __FUNCTION__ = "client_input" #23 0x00007f636becb74d in io_loop_call_io (io=0x64bba0) at ioloop.c:441 ioloop = 0x63b750 t_id = 2 __FUNCTION__ = "io_loop_call_io" #24 0x00007f636beccb15 in io_loop_handler_run_internal (ioloop=<value optimized out>) at ioloop-epoll.c:220 ctx = 0x63c3f0 events = <value optimized out> event = 0x63d260 list = 0x64bc00 ---Type <return> to continue, or q <return> to quit--- io = <value optimized out> tv = {tv_sec = 1799, tv_usec = 999456} msecs = <value optimized out> ret = 1 i = <value optimized out> j = 0 call = <value optimized out> __FUNCTION__ = "io_loop_handler_run_internal" #25 0x00007f636becb7d9 in io_loop_handler_run (ioloop=0x63b750) at ioloop.c:488 No locals. #26 0x00007f636becb868 in io_loop_run (ioloop=0x63b750) at ioloop.c:465 __FUNCTION__ = "io_loop_run" #27 0x00007f636be74a63 in master_service_run (service=0x63b5e0, callback=<value optimized out>) at master-service.c:566 No locals. #28 0x00000000004227e7 in main (argc=2, argv=0x63b390) at main.c:400 set_roots = {0x42b300, 0x0} login_set = {auth_socket_path = 0x633050 "\210\060c", postlogin_socket_path = 0x633088 "", postlogin_timeout_secs = 60, callback = 0x422980 <login_client_connected>, failure_callback = 0x422cf0 <login_client_failed>, request_auth_token = 1} service_flags = <value optimized out> storage_service_flags = <value optimized out> username = <value optimized out> c = <value optimized out> (gdb)
Thanks.
MU
participants (4)
-
Maciej Uhlig
-
Mark Sapiro
-
Teemu Huovila
-
Timo Sirainen