Hi,
yesterday I upgraded to version 2.2.13 under Debian Squeeze.
Since today morning sometimes my logfile shows the folling error:
.. Jun 24 10:14:16 mailstore dovecot: imap(user@domain.net pid:23434 session:<jf6yi5D8TADD/vzh>): Fatal: master: service(imap): child 23434 killed with signal 11 (core dumped) ...
The kernel error log shows: ... Jun 24 10:14:16 mailstore kernel: [13959701.899726] imap[23434]: segfault at 1012acec0 ip 00007f7dd89b5e52 sp 00007ffffd33d9b0 error 4 in libdovecot-storage.so.0.0.0[7f7dd88ed000+10d000] ...
This seems only to happen in conjunction with Horde Webmail. Other IMAP clients aren't affected.
I made a backtrace:
-----> start backtrace <----- Core was generated by `dovecot/imap'. Program terminated with signal 11, Segmentation fault. #0 mail_index_strmap_uid_exists (ctx=0x7ffffd33d9f0, uid=8442) at mail-index-strmap.c:395 395 mail-index-strmap.c: No such file or directory. in mail-index-strmap.c (gdb) bt full #0 mail_index_strmap_uid_exists (ctx=0x7ffffd33d9f0, uid=8442) at mail-index-strmap.c:395 rec = 0x1012acec0 #1 0x00007f7dd89b79ab in mail_index_strmap_view_renumber (_sync=<value optimized out>) at mail-index-strmap.c:842 ctx = {view = 0x12b2d80, input = 0x0, end_offset = 0, highest_str_idx = 0, uid_lookup_seq = 0, lost_expunged_uid = 0, data = 0x0, end = 0x0, str_idx_base = 0x0, rec = {uid = 0, ref_index = 0, str_idx = 0}, next_ref_index = 0, rec_size = 0, too_large_uids = 0} str_idx = 0 count = 1 ret = <value optimized out> prev_uid = 8442 i = 0 dest = 0 count2 = <value optimized out> #2 mail_index_strmap_write (_sync=<value optimized out>) at mail-index-strmap.c:1189 ret = <value optimized out> #3 mail_index_strmap_view_sync_commit (_sync=<value optimized out>) at mail-index-strmap.c:1236 sync = <value optimized out> view = <value optimized out> #4 0x00007f7dd899fc23 in mail_thread_index_map_build (box=<value optimized out>, args=<value optimized out>, ctx_r=<value optimized out>) at index-thread.c:332 last_uid = 8442 search_ctx = <value optimized out> mail = <value optimized out> seq1 = 0 tbox = 0x12af2e0 headers_ctx = 0x12b7e50 search_args = <value optimized out> seq2 = <value optimized out> wanted_headers = {0x7f7dd89d8542 "message-id", 0x7f7dd89d9f96 "in-reply-to", 0x7f7dd89d9fa2 "references", 0x0} #5 mail_thread_init (box=<value optimized out>, args=<value optimized out>, ctx_r=<value optimized out>) at index-thread.c:569 tbox = 0x12af2e0 ctx = 0x12afc10 search_ctx = 0x12b2b20 ret = <value optimized out> __FUNCTION__ = "mail_thread_init" #6 0x0000000000414ef3 in imap_thread (cmd=0x12a7eb0) at cmd-thread.c:90 ctx = <value optimized out> str = 0x12afbd0 #7 cmd_thread (cmd=0x12a7eb0) at cmd-thread.c:281 client = 0x12a72b0 thread_type = MAIL_THREAD_REFERENCES sargs = 0x12b04a0 args = 0x128faf8 charset = 0x128fc18 "US-ASCII" str = 0x128fc08 "REFERENCES" ret = <value optimized out> #8 0x00000000004181fd in command_exec (cmd=0x12a7eb0) at imap-commands.c:158 hook = 0x128d110 ret = <value optimized out> #9 0x00000000004172e0 in client_command_input (cmd=0x12a7eb0) at imap-client.c:778 client = 0x12a72b0 command = <value optimized out> __FUNCTION__ = "client_command_input" #10 0x0000000000417376 in client_command_input (cmd=0x12a7eb0) at imap-client.c:839 client = 0x12a72b0 command = 0x12acd00 __FUNCTION__ = "client_command_input" #11 0x000000000041765d in client_handle_next_command (client=0x12a72b0) at imap-client.c:877 No locals. #12 client_handle_input (client=0x12a72b0) at imap-client.c:889 _data_stack_cur_id = 3 ret = 80 remove_io = <value optimized out> handled_commands = false ---Type <return> to continue, or q <return> to quit--- __FUNCTION__ = "client_handle_input" #13 0x00000000004179ef in client_input (client=0x12a72b0) at imap-client.c:931 cmd = <value optimized out> output = 0x12a7cf0 bytes = <value optimized out> __FUNCTION__ = "client_input" #14 0x00007f7dd869808e in io_loop_call_io (io=0x12a7dc0) at ioloop.c:441 ioloop = 0x128c760 t_id = 2 __FUNCTION__ = "io_loop_call_io" #15 0x00007f7dd869923f in io_loop_handler_run_internal (ioloop=<value optimized out>) at ioloop-epoll.c:220 ctx = 0x128d3f0 event = 0x128e260 list = 0x128ee50 io = 0x12acde0 tv = {tv_sec = 4, tv_usec = 996567} msecs = <value optimized out> ret = 1 i = 0 call = false __FUNCTION__ = "io_loop_handler_run_internal" #16 0x00007f7dd8698119 in io_loop_handler_run (ioloop=0x12acde0) at ioloop.c:488 No locals. #17 0x00007f7dd86981a8 in io_loop_run (ioloop=0x128c760) at ioloop.c:465 __FUNCTION__ = "io_loop_run" #18 0x00007f7dd8645153 in master_service_run (service=0x128c5f0, callback=0x20fa) at master-service.c:566 No locals. #19 0x0000000000420f87 in main (argc=1, argv=0x128c3a0) at main.c:410 set_roots = {0x428fc0, 0x0} login_set = {auth_socket_path = 0x1284050 "\210@(\001", postlogin_socket_path = 0x0, postlogin_timeout_secs = 60, callback = 0x421180 <login_client_connected>, failure_callback = 0x421120 <login_client_failed>, request_auth_token = 1} service_flags = <value optimized out> storage_service_flags = MAIL_STORAGE_SERVICE_FLAG_DISALLOW_ROOT username = 0x0 c = <value optimized out>
-----> end backtrace <-----
Have you any idea how I can solve this?
Many thanks Urban Loesch
doveconf -n:
... # 2.2.13 (38cd37cea8b1): /etc/dovecot/dovecot.conf # OS: Linux 3.4.67-vs2.3.3.9-rol-em64t-efigpt x86_64 Debian 6.0.9 ext4 auth_cache_negative_ttl = 0 auth_cache_size = 80 M auth_cache_ttl = 1 weeks auth_mechanisms = plain login auth_verbose = yes default_client_limit = 2000 deliver_log_format = msgid=%m: %$ %p %w disable_plaintext_auth = no login_trusted_networks = INTERNAL_IPS mail_gid = mailstore mail_location = mdbox:/home/vmail/%d/%n:INDEX=/home/dovecotindex/%d/%n mail_log_prefix = "%s(%u pid:%p session:<%{session}>): " mail_plugins = " quota mail_log notify zlib" mail_uid = mailstore mailbox_idle_check_interval = 1 mins 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 duplicate imapflags notify mdbox_rotate_size = 10 M namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Items" { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = separator = / type = private } passdb { args = /etc/dovecot/dovecot-sql-account.conf driver = sql } plugin { mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename flag_change save mailbox_create append mail_log_fields = uid box msgid size from mail_log_group_events = no quota = dict:Storage used::file:%h/dovecot-quota quota_rule2 = Trash:storage=+100M quota_warning = storage=95%% quota-warning 95 %u quota_warning2 = storage=80%% quota-warning 80 %u sieve = ~/.dovecot.sieve sieve_dir = ~/sieve sieve_extensions = +notify +imapflags sieve_max_redirects = 15 zlib_save = gz zlib_save_level = 9 } protocols = imap pop3 lmtp sieve service auth-worker { service_count = 0 vsz_limit = 512 M } service auth { unix_listener auth-userdb { group = mailstore mode = 0660 user = root } } service imap-login { inet_listener imap { port = 143 } process_limit = 256 process_min_avail = 50 service_count = 1 } service imap { process_limit = 2048 process_min_avail = 50 service_count = 1 vsz_limit = 512 M } service lmtp { inet_listener lmtp { address = * port = 24 } unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0666 user = postfix } } service pop3-login { inet_listener pop3 { port = 110 } process_limit = 256 process_min_avail = 25 service_count = 1 } service pop3 { process_limit = 256 process_min_avail = 25 service_count = 1 } service quota-warning { executable = script /usr/local/rol/dovecot/quota-warning.sh unix_listener quota-warning { user = mailstore } user = mailstore } ssl = no ssl_cert = </etc/dovecot/ssl/dovecot.pem ssl_key = </etc/dovecot/ssl/dovecot.key userdb { args = /etc/dovecot/dovecot-sql-account.conf driver = sql } protocol lmtp { mail_fsync = optimized mail_plugins = " quota mail_log notify zlib sieve zlib" } protocol imap { imap_client_workarounds = tb-extra-mailbox-sep imap_id_log = * imap_logout_format = bytes=%i/%o session=<%{session}> mail_max_userip_connections = 40 mail_plugins = " quota mail_log notify zlib imap_quota imap_zlib" } protocol pop3 { mail_plugins = " quota mail_log notify zlib" pop3_logout_format = bytes_sent=%o top=%t/%p, retr=%r/%b, del=%d/%m, size=%s uidl_hash=%u session=<%{session}> }
....