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([email protected]): 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([email protected]): Error: > zlib.read(/srv/mailstore/[email protected]/mail/.trash/tmp/1465283884.M336492P22902.imap): > unexpected EOF at 88001 > Jun 7 09:23:09 imap dovecot: imap([email protected]): Error: > read(zlib(/srv/mailstore/[email protected]/mail/.trash/tmp/1465283884.M336492P22902.imap)) > failed: > read(/srv/mailstore/[email protected]/mail/.trash/tmp/1465283884.M336492P22902.imap) > failed: > zlib.read(/srv/mailstore/[email protected]/mail/.trash/tmp/1465283884.M336492P22902.imap): > unexpected EOF at 88001 (uid=0, box=trash) > Jun 7 09:23:09 imap dovecot: imap([email protected]): 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
