Christian Schmidt
2015-Dec-29 11:12 UTC
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 at 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 at chemie.uni-hamburg.de](+0x7263) [0x7f58fd831263] -> dovecot/lmtp [DATA MAILRECIPIENT at chemie.uni-hamburg.de](+0x79d9) [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 at chemie.uni-hamburg.de](main+0x19c) [0x7f58fd82f8dc] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xfd) [0x7f58fca5fead] -> dovecot/lmtp [DATA MAILRECIPIENT at chemie.uni-hamburg.de](+0x59ad) [0x7f58fd82f9ad] Dec 29 09:56:50 mailhost dovecot: lmtp(MAILRECIPIENT at 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 at 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 at 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. -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 5326 bytes Desc: S/MIME Cryptographic Signature URL: <http://dovecot.org/pipermail/dovecot/attachments/20151229/e4024960/attachment.p7s>
Timo Sirainen
2015-Dec-29 18:25 UTC
LMTP crashes on Debian with dovecot backports from rename-it.nl
On 29 Dec 2015, at 06:12, Christian Schmidt <christian.schmidt at 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 at 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 at 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 at 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/a556e29bb9e48968b88c783148f3308bf90c7912 or https://github.com/dovecot/core/commit/7d800c558b4a40f11748d4ebfc2bf89eb743f03c broke it. But I don't have any good ideas why they might have broken it.
Christian Schmidt
2015-Dec-30 08:45 UTC
LMTP crashes on Debian with dovecot backports from rename-it.nl
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. -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 5326 bytes Desc: S/MIME Cryptographic Signature URL: <http://dovecot.org/pipermail/dovecot/attachments/20151230/28622544/attachment.p7s>