Hello,

At the moment I am investigating an issue (probably) related to Dovecot /zlib. I am hoping someone is willing to help. Thanks.

#Background information

Every time a certain user checked her e-mail the following errors would appear in "/var/log/mail.err" (please find the lines below).

I am using zlib (please find the details in the configuration below).

I did include the Dovecot version, OS details, CPU details and file system details in this message.

I did migrate the whole mail domain to Microsoft 365 (as the user has an active subscription and had to move on - for me this was the fastest method to help the user in this case).

The mailbox still exists on the server. I suspect there's file corruption somewhere? I am routing mail from the domain to xxxxx-xx.mail.protection.outlook.com (just to be sure that the user doesn't miss anything - mx records have been updated).

I did notice that the user had issues with receiving mail. Outlook would keep trying to fetch mail and was hard to close (user had to kill Outlook through the task manager - after migrating to Microsoft 365 this problem is resolved too).

I would like to find out what causes/caused this problem. I would like to understand the problem and would like to try to avoid future problems.

I did run "dovecot-sysreport" but I did notice the data is not anonymized. I can anonymize the details and submit those if required.


#Dovcecot version

 root@s1:/# dovecot --version
  2.3.4.1 (f79e8e7e4)

#Operating system

 root@s1:/# uname -a
Linux s1 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux

 root@s1:/# cat /etc/debian_version
  10.9

#CPU Architecture

 root@s1:/# lscpu
  Architecture:        x86_64
  CPU op-mode(s):      32-bit, 64-bit
  Byte Order:          Little Endian

#File System

ext4 errors=continue,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1

#Errors

May 17 22:37:11 s1 dovecot: imap(x...@xxxxx.xx)<18570><MxyEjIzCs8pSoYVo>: Panic: file ostream-zlib.c: line 37 (o_stream_zlib_close): assertion failed: (zstream->ostream.finished || zstream->ostream.ostream.stream_errno != 0 || zstream->ostream.error_handling_disabled)

May 17 22:37:11 s1 dovecot: imap(x...@xxxxx.xx)<18570><MxyEjIzCs8pSoYVo>: Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0xdb73b) [0x7f45c109973b] -> /usr/lib/dovecot/libdovecot.so.0(+0xdb7d1) [0x7f45c10997d1] -> /usr/lib/dovecot/libdovecot.so.0(+0x4a199) [0x7f45c1008199] -> /usr/lib/dovecot/modules/lib20_zlib_plugin.so(+0x3c6f) [0x7f45c0dc3c6f] -> /usr/lib/dovecot/libdovecot.so.0(+0xffd5e) [0x7f45c10bdd5e] -> /usr/lib/dovecot/libdovecot.so.0(o_stream_destroy+0x16) [0x7f45c10bdd86] -> /usr/lib/dovecot/libdovecot-storage.so.0(maildir_save_finish+0x18d) [0x7f45c11d046d] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_save_cancel+0x4d) [0x7f45c11a867d] -> dovecot/imap(+0x10f36) [0x5606b3187f36] -> dovecot/imap(+0x10ff3) [0x5606b3187ff3] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x6f) [0x7f45c10afbef] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x136) [0x7f45c10b11e6] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x4c) [0x7f45c10afc8c] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x40) [0x7f45c10afdf0] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f45c1030123] -> dovecot/imap(main+0x325) [0x5606b3187bf5] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xeb) [0x7f45c0e1309b] -> dovecot/imap(_start+0x2a) [0x5606b3187d8a]

May 17 22:37:11 s1 dovecot: imap(x...@xxxxx.xx)<18570><MxyEjIzCs8pSoYVo>: Fatal: master: service(imap): child 18570 killed with signal 6 (core dumps disabled - https://dovecot.org/bugreport.html#coredumps)

May 17 22:54:52 s1 dovecot: imap(x...@xxxxx.xx)<20321><HrbpyozCn8tSoYVo>: Panic: file ostream-zlib.c: line 37 (o_stream_zlib_close): assertion failed: (zstream->ostream.finished || zstream->ostream.ostream.stream_errno != 0 || zstream->ostream.error_handling_disabled)

May 17 22:54:52 s1 dovecot: imap(x...@xxxxx.xx)<20321><HrbpyozCn8tSoYVo>: Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0xdb73b) [0x7fda4a55473b] -> /usr/lib/dovecot/libdovecot.so.0(+0xdb7d1) [0x7fda4a5547d1] -> /usr/lib/dovecot/libdovecot.so.0(+0x4a199) [0x7fda4a4c3199] -> /usr/lib/dovecot/modules/lib20_zlib_plugin.so(+0x3c6f) [0x7fda4a27ec6f] -> /usr/lib/dovecot/libdovecot.so.0(+0xffd5e) [0x7fda4a578d5e] -> /usr/lib/dovecot/libdovecot.so.0(o_stream_destroy+0x16) [0x7fda4a578d86] -> /usr/lib/dovecot/libdovecot-storage.so.0(maildir_save_finish+0x18d) [0x7fda4a68b46d] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_save_cancel+0x4d) [0x7fda4a66367d] -> dovecot/imap(+0x10f36) [0x5559c9e82f36] -> dovecot/imap(+0x10ff3) [0x5559c9e82ff3] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x6f) [0x7fda4a56abef] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x136) [0x7fda4a56c1e6] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x4c) [0x7fda4a56ac8c] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x40) [0x7fda4a56adf0] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7fda4a4eb123] -> dovecot/imap(main+0x325) [0x5559c9e82bf5] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xeb) [0x7fda4a2ce09b] -> dovecot/imap(_start+0x2a) [0x5559c9e82d8a]

May 17 22:54:52 s1 dovecot: imap(x...@xxxxx.xx)<20321><HrbpyozCn8tSoYVo>: Fatal: master: service(imap): child 20321 killed with signal 6 (core dumps disabled - https://dovecot.org/bugreport.html#coredumps)

#Config

root@s1:/opt/scripts# dovecot -n
# 2.3.4.1 (f79e8e7e4): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.4 ()
# OS: Linux 4.19.0-16-amd64 x86_64 Debian 10.9
# Hostname: s1.xxxxx.xx
auth_mechanisms = plain login
disable_plaintext_auth = no
imap_capability = +SPECIAL-USE XLIST
listen = *,[::]
lmtp_rcpt_check_quota = yes
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_max_userip_connections = 100
mail_plugins = quota zlib
mail_privileged_group = vmail
namespace inbox {
  inbox = 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 =
  separator = .
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf
  driver = sql
}
plugin {
  quota = dict:user::file:/var/vmail/%d/%n/.quotausage
  quota_status_nouser = DUNNO
  quota_status_overquota = 552 5.2.2 Mailbox is full
  quota_status_success = DUNNO
  sieve = /var/vmail/%d/%n/.sieve
  sieve_after = /var/vmail/%d/%n/.ispconfig.sieve
  sieve_before = /var/vmail/%d/%n/.ispconfig-before.sieve
  sieve_max_actions = 100
  sieve_max_redirects = 25
  sieve_max_script_size = 2M
  zlib_save = gz
  zlib_save_level = 9
}
protocols = imap pop3 lmtp
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener auth-userdb {
    group = vmail
    mode = 0600
    user = vmail
  }
  user = root
}
service imap-login {
  client_limit = 1000
  process_limit = 512
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
service quota-status {
  client_limit = 1
  executable = quota-status -p postfix
  unix_listener /var/spool/postfix/private/quota-status {
    group = postfix
    mode = 0660
    user = postfix
  }
}
service stats {
  unix_listener stats-reader {
    group = vmail
    mode = 0660
    user = vmail
  }
  unix_listener stats-writer {
    group = vmail
    mode = 0660
    user = vmail
  }
}
ssl_cert = </etc/postfix/smtpd.cert
ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
ssl_min_protocol = TLSv1.2
userdb {
  driver = prefetch
}
userdb {
  args = /etc/dovecot/dovecot-sql.conf
  driver = sql
}
protocol imap {
  auth_verbose = yes
  mail_plugins = quota zlib quota imap_quota
}
protocol pop3 {
  auth_verbose = yes
  mail_plugins = quota zlib quota
  pop3_uidl_format = %08Xu%08Xv
}
protocol lda {
  mail_plugins = quota zlib sieve quota
  postmaster_address = postmas...@xxxxx.xx
}
protocol lmtp {
  mail_plugins = quota zlib quota sieve
  postmaster_address = postmas...@xxxxx.xx


--
Kind regards,

Bouke J. Henstra

Reply via email to