LMTP crashes on Debian with dovecot backports from rename-it.nl
Hello dovecot-users,
we're running Debian 7.9 with dovecot from Stephan Bosch's repository: deb http://xi.rename-it.nl/debian/ oldstable-auto/dovecot-2.2 main
Starting with dovecot 2.2.20-1 build 28, we suddenly discovered that some mails (to be locally delivered) "got stuck". dovecot's log revealed messages like the following one:
Dec 29 09:56:50 mailhost dovecot: lmtp(MAILRECIPIENT@chemie.uni-hamburg.de): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0x8360f) [0x7f58fce4f60f] -> /usr/lib/dovecot/libdovecot.so.0(+0x8366e) [0x7f58fce4f66e] -> /usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7f58fcdf8a3e] -> /usr/lib/dovecot/libdovecot-storage.so.0(+0x3cc75) [0x7f58fd107c75] -> /usr/lib/dovecot/libdovecot-storage.so.0(+0xabeda) [0x7f58fd176eda] -> /usr/lib/dovecot/libdovecot-storage.so.0(index_mail_get_first_header+0xba) [0x7f58fd17723a] -> /usr/lib/dovecot/libdovecot-storage.so.0(mail_get_first_header+0x38) [0x7f58fd108cd8] -> /usr/lib/dovecot/modules/lib20_mail_log_plugin.so(+0x1b5c) [0x7f58fb16cb5c] -> /usr/lib/dovecot/modules/lib20_mail_log_plugin.so(+0x22e9) [0x7f58fb16d2e9] -> /usr/lib/dovecot/modules/lib15_notify_plugin.so(notify_contexts_mail_copy+0x46) [0x7f58fb371576] -> /usr/lib/dovecot/modules/lib15_notify_plugin.so(+0x2750) [0x7f58fb372750] -> /usr/lib/dovecot/modules/lib10_quota_plugin.so(+0xbc20) [0x7f58fb580c20] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_copy+0x7d) [0x7f58fd11305d] -> /usr/lib/dovecot/libdovecot-lda.so.0(mail_deliver_save+0x171) [0x7f58fd4019c1]-> /usr/lib/dovecot/libdovecot-lda.so.0(mail_deliver+0x11b) [0x7f58fd401dfb] -> dovecot/lmtp DATA MAILRECIPIENT@chemie.uni-hamburg.de [0x7f58fd831263] -> dovecot/lmtp DATA MAILRECIPIENT@chemie.uni-hamburg.de [0x7f58fd8319d9] -> /usr/lib/dovecot /libdovecot.so.0(io_loop_call_io+0x5b) [0x7f58fce6282b] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0xd7) [0x7f58fce63c07] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x25) [0x7f58fce628d5] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x38) [0x7f58fce62a78] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f58fcdfe443] -> dovecot/lmtp DATA MAILRECIPIENT@chemie.uni-hamburg.de [0x7f58fd82f8dc] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xfd) [0x7f58fca5fead] -> dovecot/lmtp DATA MAILRECIPIENT@chemie.uni-hamburg.de [0x7f58fd82f9ad] Dec 29 09:56:50 mailhost dovecot: lmtp(MAILRECIPIENT@chemie.uni-hamburg.de): Fatal: master: service(lmtp): child 15897 killed with signal 6 (core dumps disabled) Dec 29 09:56:51 mailhost dovecot: lmtp(MAILRECIPIENT@chemie.uni-hamburg.de): Panic: file ../../../src/lib/array.h: line 219 (array_idx_i): assertion failed: (idx * array->element_size < array->buffer->used)
All dovecot builds newer than 2.2.20-1~auto+26 show the same behaviour.
Is there anything we can do?
# doveconf -n # 2.2.20 (): /etc/dovecot/dovecot.conf # Pigeonhole version 0.4.10 # OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.9 ext4 auth_default_realm = chemie.uni-hamburg.de auth_master_user_separator = * auth_mechanisms = plain login auth_verbose = yes login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k mail_gid = vmail mail_location = maildir:/mail/%d/%n/Maildir mail_plugins = acl mail_log notify quota zlib mail_uid = vmail 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 imapflags notify namespace { list = children location = maildir:/mail/%%d/%%n/Maildir:INDEX=/mail/%d/%n/shared/%%u:CONTROL=/mail/%d/%n/shared/%%u prefix = SHARED/%%u/ separator = / type = shared } namespace inbox { hidden = no inbox = yes list = yes location = mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Sent { auto = subscribe special_use = \Sent } mailbox "Sent Messages" { auto = no special_use = \Sent } mailbox Trash { auto = subscribe special_use = \Trash } prefix = INBOX/ separator = / subscriptions = yes type = private } passdb { args = /etc/dovecot/deny-users deny = yes driver = passwd-file } passdb { args = /etc/dovecot/master-users driver = passwd-file master = yes } passdb { args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } plugin { acl = vfile acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size quota = maildir:Mailbox-Quota quota_warning = storage=95%% quota-warning 95 %u quota_warning2 = storage=80%% quota-warning 80 %u sieve = file:~/sieve;active=~/.dovecot.sieve sieve_extensions = +notify +imapflags zlib_save = gz zlib_save_level = 6 } pop3_client_workarounds = outlook-no-nuls oe-ns-eoh postmaster_address = postmaster@chemie.uni-hamburg.de protocols = " imap lmtp sieve pop3" service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0666 user = postfix } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } process_min_avail = 8 service_count = 0 vsz_limit = 256 M } service imap { executable = imap postlogin process_limit = 1024 vsz_limit = 512 M } service lmtp { inet_listener lmtp { address = 127.0.0.1 port = 24 } unix_listener /var/spool/postfix/private/lmtp-dovecot { group = postfix mode = 0660 user = postfix } } service pop3-login { inet_listener pop3 { port = 0 } inet_listener pop3s { port = 995 ssl = yes } } service pop3 { executable = pop3 postlogin } service postlogin { executable = script-login -d rawlog } ssl = required ssl_ca = </ssl/CA.pem ssl_cert = </ssl/cert.pem ssl_key = </ssl/cert.key ssl_protocols = !SSLv2 !SSLv3 syslog_facility = daemon userdb { args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } verbose_proctitle = yes protocol lmtp { mail_plugins = acl mail_log notify quota zlib sieve } protocol lda { mail_plugins = acl mail_log notify quota zlib sieve } protocol imap { mail_max_userip_connections = 50 mail_plugins = acl mail_log notify quota zlib imap_acl imap_quota imap_zlib } protocol sieve { mail_max_userip_connections = 100 } protocol pop3 { mail_max_userip_connections = 50 }
Thanks & kind regards, Christian Schmidt
-- No signature available.
On 29 Dec 2015, at 06:12, Christian Schmidt <christian.schmidt@chemie.uni-hamburg.de> wrote:
Hello dovecot-users,
we're running Debian 7.9 with dovecot from Stephan Bosch's repository: deb http://xi.rename-it.nl/debian/ oldstable-auto/dovecot-2.2 main
Starting with dovecot 2.2.20-1 build 28, we suddenly discovered that some mails (to be locally delivered) "got stuck". dovecot's log revealed messages like the following one:
Dec 29 09:56:51 mailhost dovecot: lmtp(MAILRECIPIENT@chemie.uni-hamburg.de): Panic: file ../../../src/lib/array.h: line 219 (array_idx_i): assertion failed: (idx * array->element_size < array->buffer->used) .. lmtp(MAILRECIPIENT@chemie.uni-hamburg.de): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0x8360f) [0x7f58fce4f60f] -> /usr/lib/dovecot/libdovecot.so.0(+0x8366e) [0x7f58fce4f66e] -> /usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7f58fcdf8a3e] -> /usr/lib/dovecot/libdovecot-storage.so.0(+0x3cc75) [0x7f58fd107c75] -> /usr/lib/dovecot/libdovecot-storage.so.0(+0xabeda) [0x7f58fd176eda] -> /usr/lib/dovecot/libdovecot-storage.so.0(index_mail_get_first_header+0xba) [0x7f58fd17723a] -> /usr/lib/dovecot/libdovecot-storage.so.0(mail_get_first_header+0x38) [0x7f58fd108cd8] -> /usr/lib/dovecot/modules/lib20_mail_log_plugin.so(+0x1b5c) [0x7f58fb16cb5c] ->
So looking up a header causes a crash. Can you send me one such mail that causes this crash? The mail can probably be put through http://dovecot.org/tools/maildir-anonymize.pl to preserve the crash but hide all the actual email contents.
Dec 29 09:56:50 mailhost dovecot: lmtp(MAILRECIPIENT@chemie.uni-hamburg.de): Fatal: master: service(lmtp): child 15897 killed with signal 6 (core dumps disabled)
gdb backtrace would also be useful. See http://dovecot.org/bugreport.html
All dovecot builds newer than 2.2.20-1~auto+26 show the same behaviour.
So either https://github.com/dovecot/core/commit/a556e29bb9e48968b88c783148f3308bf90c7... or https://github.com/dovecot/core/commit/7d800c558b4a40f11748d4ebfc2bf89eb743f... broke it. But I don't have any good ideas why they might have broken it.
Hello Timo,
On 29.12.2015 19:25, Timo Sirainen wrote:
So looking up a header causes a crash. Can you send me one such mail that causes this crash?
I'll ask one of the users suffering from the crash if I may "borrow" one of the mails. This will probably take some days.
Thank you!
Best wishes for the new year, Christian
-- No signature available.
On 30 Dec 2015, at 03:45, Christian Schmidt <christian.schmidt@chemie.uni-hamburg.de> wrote:
Hello Timo,
On 29.12.2015 19:25, Timo Sirainen wrote:
So looking up a header causes a crash. Can you send me one such mail that causes this crash?
I'll ask one of the users suffering from the crash if I may "borrow" one of the mails. This will probably take some days.
Actually no need. This should fix it: https://github.com/dovecot/core/commit/a4392e9d312e3b5973fe5dbaee7028197a700...
Hello Timo,
On 30.12.2015 14:24, Timo Sirainen wrote:
On 30 Dec 2015, at 03:45, Christian Schmidt <christian.schmidt@chemie.uni-hamburg.de> wrote:
Hello Timo,
On 29.12.2015 19:25, Timo Sirainen wrote:
So looking up a header causes a crash. Can you send me one such mail that causes this crash? I'll ask one of the users suffering from the crash if I may "borrow" one of the mails. This will probably take some days. Actually no need. This should fix it: https://github.com/dovecot/core/commit/a4392e9d312e3b5973fe5dbaee7028197a700...
Great!!! Thank you very much, Timo!
Do you (or does anybody )know when this patch will make it into Stephan Bosch's repository?
Kind Regards & all the best for 2k16, Christian
-- No signature available.
Op 30-12-2015 om 14:31 schreef Christian Schmidt:
Hello Timo,
On 30.12.2015 14:24, Timo Sirainen wrote:
On 30 Dec 2015, at 03:45, Christian Schmidt <christian.schmidt@chemie.uni-hamburg.de> wrote:
Hello Timo,
On 29.12.2015 19:25, Timo Sirainen wrote:
So looking up a header causes a crash. Can you send me one such mail that causes this crash? I'll ask one of the users suffering from the crash if I may "borrow" one of the mails. This will probably take some days. Actually no need. This should fix it: https://github.com/dovecot/core/commit/a4392e9d312e3b5973fe5dbaee7028197a700... Great!!! Thank you very much, Timo!
Do you (or does anybody )know when this patch will make it into Stephan Bosch's repository?
Usually, it is built automatically within the hour. This change is now first included in the 2:2.2.21-1~auto+5 package, as published at 14:58.
Regards,
Stephan.
Hello Stephan,
On 30.12.2015 16:47, Stephan Bosch wrote:
Usually, it is built automatically within the hour. This change is now first included in the 2:2.2.21-1~auto+5 package, as published at 14:58.
Wonderul, I'll give it a try.
Thank you very much.
Kind Regards, Christian
-- No signature available.
participants (3)
-
Christian Schmidt
-
Stephan Bosch
-
Timo Sirainen