Panic: file ostream-zlib.c: line 36 (o_stream_zlib_close): assertion failed:

Aki Tuomi aki.tuomi at dovecot.fi
Fri Jan 19 12:14:31 EET 2018



On 18.01.2018 11:32, Thomas Robers wrote:
> Hi,
>
> after updating Dovecot to version 2.3 I get a lot of core-dumps like:
>
>> Jan 18 10:08:20 mail dovecot:
>> imap(bob at tutech.de)<18200><CIPhNwljJcdYS/hg>: Panic: file
>> ostream-zlib.c: line 36 (o_stream_zlib_close): assertion failed:
>> (zstream->ostream.finished || zstream->ostream.ostream.stream_errno
>> != 0)
>> Jan 18 10:08:20 mail dovecot:
>> imap(bob at tutech.de)<18200><CIPhNwljJcdYS/hg>: Error: Raw backtrace:
>> /usr/lib64/dovecot/libdovecot.so.0(+0xc71da) [0x7f9b510c81da] ->
>> /usr/lib64/dovecot
>> /libdovecot.so.0(+0xc7766) [0x7f9b510c8766] ->
>> /usr/lib64/dovecot/libdovecot.so.0(+0x3be11) [0x7f9b5103ce11] ->
>> /usr/lib64/dovecot/lib20_zlib_plugin.so(+0x4ffb) [0x7f9b4fc21ffb] ->
>> /usr/lib64/dovecot/libdovecot.so.0(+0xed3a6) [0x7f9b510ee3a6] ->
>> dovecot/imap(client_disconnect+0x4f) [0x7f9b518f3a1f] ->
>> dovecot/imap(cmd_logout+0x5b) [0x7f9b518ede5b] ->
>> dovecot/imap(command_exec+0x65) [0x7f9b518f7585] ->
>> dovecot/imap(+0x1a7b0) [0x7f9b518f47b0] -> dovecot/imap(+0x1a848)
>> [0x7f9b518f4848] -> dovecot/imap(client_handle_input+0x1d5)
>> [0x7f9b518f4c35] -> dovecot/imap(client_input+0x6e) [0x7f9b518f517e]
>> -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_call_io+0x55)
>> [0x7f9b510deec5] -> /usr/lib64/dovecot
>> /libdovecot.so.0(io_loop_handler_run_internal+0xbf) [0x7f9b510e0dcf]
>> -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run+0x55)
>> [0x7f9b510defb5] -> /usr/lib64/dovecot
>> /libdovecot.so.0(io_loop_run+0x38) [0x7f9b510df1d8] ->
>> /usr/lib64/dovecot/libdovecot.so.0(master_service_run+0x13)
>> [0x7f9b5105eab3] -> dovecot/imap(main+0x33e) [0x7f9b51903cee] ->
>> /lib64/libc.so.6(__libc_start_main+0xfd) [0x7f9b50c8bd1d] ->
>> dovecot/imap(+0xe339) [0x7f9b518e8339]
>> Jan 18 10:08:20 mail dovecot:
>> imap(bob at tutech.de)<18200><CIPhNwljJcdYS/hg>: Fatal: master:
>> service(imap): child 18200 killed with signal 6 (core dumped)
>
>
> The gdb backtrace is:
>
>
>> gdb /usr/libexec/dovecot/imap /var/core/18200
>> GNU gdb (GDB) Red Hat Enterprise Linux (7.2-92.el6)
>> Copyright (C) 2010 Free Software Foundation, Inc.
>> License GPLv3+: GNU GPL version 3 or later
>> <http://gnu.org/licenses/gpl.html>
>> This is free software: you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law.  Type "show
>> copying"
>> and "show warranty" for details.
>> This GDB was configured as "x86_64-redhat-linux-gnu".
>> For bug reporting instructions, please see:
>> <http://www.gnu.org/software/gdb/bugs/>...
>> Reading symbols from /usr/libexec/dovecot/imap...done.
>> [New Thread 18200]
>> Reading symbols from /usr/lib64/dovecot/libdovecot-storage.so.0...done.
>> Loaded symbols for /usr/lib64/dovecot/libdovecot-storage.so.0
>> Reading symbols from /usr/lib64/dovecot/libdovecot.so.0...done.
>> Loaded symbols for /usr/lib64/dovecot/libdovecot.so.0
>> Reading symbols from /lib64/libc.so.6...(no debugging symbols
>> found)...done.
>> Loaded symbols for /lib64/libc.so.6
>> Reading symbols from /lib64/librt.so.1...(no debugging symbols
>> found)...done.
>> Loaded symbols for /lib64/librt.so.1
>> Reading symbols from /lib64/libdl.so.2...(no debugging symbols
>> found)...done.
>> Loaded symbols for /lib64/libdl.so.2
>> Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging
>> symbols found)...done.
>> Loaded symbols for /lib64/ld-linux-x86-64.so.2
>> Reading symbols from /lib64/libpthread.so.0...(no debugging symbols
>> found)...done.
>> [Thread debugging using libthread_db enabled]
>> Loaded symbols for /lib64/libpthread.so.0
>> Reading symbols from /usr/lib64/dovecot/lib01_acl_plugin.so...done.
>> Loaded symbols for /usr/lib64/dovecot/lib01_acl_plugin.so
>> Reading symbols from /usr/lib64/dovecot/lib02_imap_acl_plugin.so...done.
>> Loaded symbols for /usr/lib64/dovecot/lib02_imap_acl_plugin.so
>> Reading symbols from /usr/lib64/dovecot/lib15_notify_plugin.so...done.
>> Loaded symbols for /usr/lib64/dovecot/lib15_notify_plugin.so
>> Reading symbols from /usr/lib64/dovecot/lib20_mail_log_plugin.so...done.
>> Loaded symbols for /usr/lib64/dovecot/lib20_mail_log_plugin.so
>> Reading symbols from /usr/lib64/dovecot/lib20_zlib_plugin.so...done.
>> Loaded symbols for /usr/lib64/dovecot/lib20_zlib_plugin.so
>> Reading symbols from /lib64/libz.so.1...(no debugging symbols
>> found)...done.
>> Loaded symbols for /lib64/libz.so.1
>> Reading symbols from /lib64/libbz2.so.1...(no debugging symbols
>> found)...done.
>> Loaded symbols for /lib64/libbz2.so.1
>> Reading symbols from
>> /usr/lib64/dovecot/lib30_imap_zlib_plugin.so...done.
>> Loaded symbols for /usr/lib64/dovecot/lib30_imap_zlib_plugin.so
>> Reading symbols from /lib64/libgcc_s.so.1...(no debugging symbols
>> found)...done.
>> Loaded symbols for /lib64/libgcc_s.so.1
>> Core was generated by `dovecot/imap'.
>> Program terminated with signal 6, Aborted.
>> #0  0x00007f9b50c9f495 in raise () from /lib64/libc.so.6
>> Missing separate debuginfos, use: debuginfo-install
>> dovecot23-2.3.0-3.gf.el6.x86_64
>
>
> My Dovecot configuration is:
>
> ---snip---
> # 2.3.0 (c8b89eb): /etc/dovecot/dovecot.conf
> # Pigeonhole version 0.5.0.1 (d33dca20)
> # OS: Linux 2.6.32-696.3.1.el6.x86_64 x86_64 CentOS release 6.9
> (Final) ext4
> auth_debug = yes
> auth_debug_passwords = yes
> auth_master_user_separator = *
> auth_mechanisms = plain login
> auth_verbose = yes
> disable_plaintext_auth = no
> doveadm_password =  # hidden, use -P to show it
> doveadm_port = 12345
> imap_max_line_length = 2 M
> mail_debug = yes
> mail_location = maildir:/export/home/imap/%Lu/Maildir
> mail_plugins = acl zlib mail_log notify
> mailbox_idle_check_interval = 10 secs
> 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
> namespace {
>   hidden = no
>   ignore_on_failure = no
>   inbox = no
>   list = children
>   location = maildir:%%h/Maildir:INDEXPVT=%h/shared/%%u
>   prefix = shared/%%u/
>   separator = /
>   subscriptions = yes
>   type = shared
> }
> namespace inbox {
>   hidden = no
>   inbox = yes
>   list = yes
>   location =
>   mailbox Drafts {
>     special_use = \Drafts
>   }
>   mailbox Junk {
>     special_use = \Junk
>   }
>   mailbox Sent {
>     special_use = \Sent
>   }
>   mailbox "Sent Messages" {
>     special_use = \Sent
>   }
>   mailbox Trash {
>     special_use = \Trash
>   }
>   prefix = INBOX/
>   separator = /
>   type = private
> }
> passdb {
>   args = /etc/dovecot/master-users
>   driver = passwd-file
>   master = yes
> }
> passdb {
>   args = /etc/dovecot/dovecot-ldap.conf.ext
>   driver = ldap
> }
> plugin {
>   acl = vfile:/etc/dovecot/global-acls:cache_secs=300
>   acl_shared_dict = file:/export/home/shared-db/shared-mailboxes
>   mail_log_events = append delete undelete expunge copy mailbox_delete
> mailbox_rename flag_change
>   mail_log_fields = uid box msgid size from flags
>   mail_replica = tcp:mail2.tutech.de
>   sieve = ~/.dovecot.sieve
>   sieve_dir = ~/sieve
>   sieve_global = /var/lib/dovecot/sieve/global/
>   sieve_user_log = ~/.dovecot.sieve.log
>   zlib_save = gz
>   zlib_save_level = 6
> }
> protocols = imap pop3 lmtp sieve sieve
> service aggregator {
>   fifo_listener replication-notify-fifo {
>     mode = 0666
>     user = vmail
>   }
>   unix_listener replication-notify {
>     mode = 0666
>     user = vmail
>   }
> }
> service auth {
>   unix_listener /var/spool/postfix/private/auth {
>     mode = 0666
>   }
>   unix_listener auth-userdb {
>     group = vmail
>     mode = 0660
>     user = vmail
>   }
> }
> service config {
>   unix_listener config {
>     user = vmail
>   }
> }
> service doveadm {
>   inet_listener {
>     port = 12345
>   }
>   user = vmail
> }
> service imap-login {
>   inet_listener imaps {
>     port = 993
>     ssl = yes
>   }
>   process_limit = 500
>   process_min_avail = 20
> }
> service imap {
>   executable = imap
> }
> service lmtp {
>   inet_listener lmtp {
>     address = 127.0.0.1
>     port = 24
>   }
> }
> service managesieve-login {
>   inet_listener sieve {
>     port = 4190
>   }
>   inet_listener sieve_deprecated {
>     port = 2000
>   }
> }
> service pop3-login {
>   inet_listener pop3s {
>     port = 995
>     ssl = yes
>   }
> }
> service pop3 {
>   executable = pop3
> }
> service replicator {
>   unix_listener replicator-doveadm {
>     mode = 0666
>   }
> }
> ssl = required
> ssl_cert = </etc/pki/dovecot/certs/mail.tutech.de.crt_chain
> ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL:!EXPORT
> ssl_dh =  # hidden, use -P to show it
> ssl_key =  # hidden, use -P to show it
> syslog_facility = local6
> userdb {
>   args = /etc/dovecot/dovecot-ldap-userdb.conf.ext
>   driver = ldap
> }
> protocol lmtp {
>   mail_plugins = acl zlib mail_log notify sieve
> }
> protocol imap {
>   mail_max_userip_connections = 100
>   mail_plugins = acl zlib mail_log notify imap_zlib imap_acl
>   rawlog_dir = /tmp/rawlog/%u
> }
> ---snip---
>
> Is this a bug or a misconfiguration? Is it possible to disable the
> zlib Plugin? Can Dovecot read the previous compressed e-mails and
> will they stay compressed? Thanks for the help!
>
> Kind regards
> Thomas

Hi!

This has been recently fixed

https://github.com/dovecot/core/commit/23da0fa1b30cc11bcc1d467674a0950c527e9ff1.patch

Aki


More information about the dovecot mailing list