Panic: file ostream-zlib.c
Bouke J. Henstra | ICT Diensten
bouke at ict-diensten.com
Mon May 24 01:59:58 EEST 2021
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 at s1:/# dovecot --version
2.3.4.1 (f79e8e7e4)
#Operating system
root at 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 at s1:/# cat /etc/debian_version
10.9
#CPU Architecture
root at 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(xxxx at 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(xxxx at 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(xxxx at 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(xxxx at 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(xxxx at 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(xxxx at 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 at 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 = postmaster at xxxxx.xx
}
protocol lmtp {
mail_plugins = quota zlib quota sieve
postmaster_address = postmaster at xxxxx.xx
--
Kind regards,
Bouke J. Henstra
More information about the dovecot
mailing list