On 07.06.2016 11:52, Aki Tuomi wrote: > > On 07.06.2016 11:20, Roland Rosenfeld wrote: >> Hi! >> >> After upgrading from Debian wheezy with (self compiled) dovecot 2.2.15 >> to Debian jessie with (self compiled) 2.2.24, I observe the following >> segmentation fault in the logs: >> >> Jun 7 09:23:09 imap dovecot: imap(u...@example.com): Error: read(<imap >> client>) failed: read(size=8003) failed: Connection reset by peer (uid=0, >> box=trash) >> Jun 7 09:23:09 imap dovecot: imap(u...@example.com): Error: >> zlib.read(/srv/mailstore/u...@example.com/mail/.trash/tmp/1465283884.M336492P22902.imap): >> unexpected EOF at 88001 >> Jun 7 09:23:09 imap dovecot: imap(u...@example.com): Error: >> read(zlib(/srv/mailstore/u...@example.com/mail/.trash/tmp/1465283884.M336492P22902.imap)) >> failed: >> read(/srv/mailstore/u...@example.com/mail/.trash/tmp/1465283884.M336492P22902.imap) >> failed: >> zlib.read(/srv/mailstore/u...@example.com/mail/.trash/tmp/1465283884.M336492P22902.imap): >> unexpected EOF at 88001 (uid=0, box=trash) >> Jun 7 09:23:09 imap dovecot: imap(u...@example.com): Fatal: master: >> service(imap): child 22902 killed with signal 11 (core dumped) >> >> We also observed the same (rare) error in the past on the old system. >> But on the old system, there were only the first 3 lines without the >> segmentation fault, so we ignored the issue until now. >> >> The problem always happens on IMAP folders where the client writes to, >> like "trash", "drafts", "sent" and the like. >> >> I wasn't able to actively reproduce this issue, but can only observe >> in the logs that some customers run into this issue from time to time. >> >> >> So all I have is a core dump with the following backtrace: >> >> Core was generated by `dovecot/imap'. >> Program terminated with signal SIGSEGV, Segmentation fault. >> (gdb) bt full >> #0 0x00007f57e276f29f in i_stream_default_get_size (stream=0x1fd2790, >> exact=<optimized out>, size_r=0x7ffed3839718) at istream.c:807 >> No locals. >> #1 0x00007f57e17024e4 in zlib_mail_close (_mail=0x1fd4de0) at >> zlib-plugin.c:170 >> mail = 0x1fd4de0 >> zmail = 0x1fd5398 >> zuser = 0x1fbd040 >> cache = 0x1fbd050 >> size = 33201320 >> #2 0x00007f57e2a2a8b9 in mailbox_save_cancel (_ctx=_ctx@entry=0x1fc4d48) at >> mail-storage.c:2117 >> ctx = 0x1fd3dd0 >> keywords = 0x0 >> mail = <optimized out> >> __FUNCTION__ = "mailbox_save_cancel" >> #3 0x000000000040c759 in cmd_append_finish (ctx=0x1fc4cf0) at >> cmd-append.c:149 >> __FUNCTION__ = "cmd_append_finish" >> #4 0x000000000040c835 in client_input_append (cmd=0x1fc4bc0) at >> cmd-append.c:89 >> ctx = <optimized out> >> client = 0x1fc3fc0 >> reason = 0x1f9e0b8 "Disconnected in APPEND (1 msgs, 306 secs, >> 188416/1122858 bytes)" >> finished = <optimized out> >> lit_offset = <optimized out> >> __FUNCTION__ = "client_input_append" >> #5 0x00007f57e2778dcc in io_loop_call_io (io=0x1fc4ad0) at ioloop.c:564 >> ioloop = 0x1fa6750 >> t_id = 2 >> __FUNCTION__ = "io_loop_call_io" >> #6 0x00007f57e277a0f1 in io_loop_handler_run_internal >> (ioloop=ioloop@entry=0x1fa6750) at ioloop-epoll.c:220 >> ctx = 0x1fa8260 >> io = <optimized out> >> tv = {tv_sec = 1799, tv_usec = 997118} >> events_count = <optimized out> >> msecs = <optimized out> >> ret = 1 >> i = 0 >> j = <optimized out> >> call = <optimized out> >> __FUNCTION__ = "io_loop_handler_run_internal" >> #7 0x00007f57e2778e55 in io_loop_handler_run >> (ioloop=ioloop@entry=0x1fa6750) at ioloop.c:612 >> No locals. >> #8 0x00007f57e2778ff8 in io_loop_run (ioloop=0x1fa6750) at ioloop.c:588 >> __FUNCTION__ = "io_loop_run" >> #9 0x00007f57e2713713 in master_service_run (service=0x1fa65f0, >> callback=callback@entry=0x423a20 <client_connected>) at master-service.c:640 >> No locals. >> #10 0x000000000040c427 in main (argc=1, argv=0x1fa6390) at main.c:460 >> set_roots = {0x42c480 <imap_setting_parser_info>, 0x635440 >> <lda_setting_parser_info>, 0x0} >> login_set = {auth_socket_path = 0x1f9e048 "ailed: Connection reset >> by peer", postlogin_socket_path = 0x0, postlogin_timeout_secs = 60, >> callback = 0x424170 <login_client_connected>, failure_callback = >> 0x423b30 <login_client_failed>, request_auth_token = 1} >> service_flags = <optimized out> >> storage_service_flags = <optimized out> >> username = 0x0 >> auth_socket_path = 0x42d42e "auth-master" >> c = <optimized out> >> >> >> This is on a server, which uses compressed maildir on a NFS storage. >> >> Here's dovecot -n output: >> >> # 2.2.24 (a82c823): /etc/dovecot/dovecot.conf >> # Pigeonhole version 0.4.14 (099a97c) >> # OS: Linux 3.16.0-4-amd64 x86_64 Debian 8.4 >> auth_cache_negative_ttl = 5 mins >> auth_cache_size = 100 M >> auth_cache_ttl = 15 mins >> auth_default_realm = example.com >> auth_master_user_separator = * >> auth_mechanisms = plain login >> auth_verbose = yes >> dict { >> acl = mysql:/etc/dovecot/dovecot-dict-sql.conf >> } >> disable_plaintext_auth = no >> listen = * >> log_timestamp = "%Y-%m-%d %H:%M:%S " >> mail_fsync = always >> mail_gid = 999 >> mail_location = maildir:~/mail >> mail_plugins = acl quota zlib >> mail_uid = 999 >> 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 index ihave >> duplicate mime foreverypart extracttext imapflags >> mmap_disable = yes >> namespace { >> list = children >> location = maildir:%%h/mail:INDEX=~/mail/shared/%%u >> prefix = shared/%%u/ >> separator = / >> subscriptions = no >> type = shared >> } >> namespace inbox { >> inbox = yes >> location = >> prefix = >> separator = / >> type = private >> } >> passdb { >> args = /etc/dovecot/dovecot-sql.conf >> driver = sql >> } >> plugin { >> acl = vfile >> acl_shared_dict = proxy::acl >> quota = maildir >> sieve = ~/.dovecot.sieve >> sieve_dir = ~/mail/sieve >> sieve_extensions = +imapflags >> zlib_save = gz >> } >> pop3_no_flag_updates = yes >> pop3_uidl_format = %v.%u >> protocols = imap pop3 sieve >> service auth { >> unix_listener auth-master { >> group = vmail >> mode = 0600 >> user = vmail >> } >> } >> service dict { >> unix_listener dict { >> group = vmail >> mode = 0600 >> user = vmail >> } >> } >> service imap { >> process_limit = 4000 >> } >> service managesieve-login { >> inet_listener sieve { >> port = 4190 >> } >> } >> service managesieve { >> process_limit = 100 >> } >> service pop3 { >> process_limit = 1000 >> } >> shutdown_clients = no >> ssl = no >> syslog_facility = local2 >> userdb { >> args = /etc/dovecot/dovecot-sql.conf >> driver = sql >> } >> verbose_proctitle = yes >> protocol imap { >> mail_max_userip_connections = 10 >> mail_plugins = acl quota zlib imap_quota imap_acl >> } >> protocol pop3 { >> mail_plugins = acl quota zlib >> } >> >> >> I hope, that this is all required information to find and solve this issue. >> >> Greetings >> Roland > Hi! > > This would appear to be fixed in > https://github.com/dovecot/core/commit/5df8396a7cbad0b38b83a86667fb3d4c223f6f7c > > --- > Aki Tuomi > Dovecot Oy
Sorry I mean https://github.com/dovecot/core/commit/6bc001ee9dc03cb3107239861867cd674fd321d7 Aki