Bug 257208

Summary: mail/dovecot 2.3.15 and mail/dovecot-pigeonhole: Error: zlib_save: Support not compiled in for handler: xz
Product: Ports & Packages Reporter: Mohammad S. Babaei <info>
Component: Individual Port(s)Assignee: Larry Rosenman <ler>
Status: Closed Works As Intended    
Severity: Affects Many People CC: ler, pi
Priority: --- Keywords: needs-qa, regression
Version: LatestFlags: linimon: maintainer-feedback? (ler)
koobs: maintainer-feedback? (pi)
koobs: merge-quarterly?
Hardware: Any   
OS: Any   

Description Mohammad S. Babaei 2021-07-15 14:56:16 UTC
After upgrading my ports I receive the following inside my maillog and I cannot retrieve any emails:

Jul 15 14:36:14 core dovecot[9207]: imap(someemail@somedomain.com)<87605><IlafZCrHndle7WyY>: Error: zlib_save: Support not compiled in for handler: xz
Jul 15 14:36:14 core dovecot[9207]: imap(someemail@somedomain.com)<87605><IlafZCrHndle7WyY>: Fatal: master: service(imap): child 87605 killed with signal 11 (core not dumped - https://dovecot.org/bugreport.html#coredumps - set service imap { drop_priv_before_exec=yes })
Jul 15 14:36:14 core dovecot[9207]: imap-login: Login: user=<someemail@somedomain.com>, method=PLAIN, rip=XXX.XXX.XXX.XXX, lip=XXX.XXX.XXX.XXX, mpid=88224, TLS, session=<geGgZCrHntle7WyY>


No changes to the config files or the port use flags. However, if I downgrade using the following commands to 2.3.13 there's no error anymore:

$ cd /usr/ports/mail/dovecot
$ git checkout 69d24a727d44d398f7357cb844386f3ec4750a4f .
$ make reinstall clean DISABLE_VULNERABILITIES=yes
$ cd /usr/ports/mail/dovecot-pigeonhole
$ git checkout 305f148f482daf30dcf728039d03d019f88344eb .
$ make reinstall clean DISABLE_VULNERABILITIES=yes
$ service dovecot restart
$ tail -f /var/log/maillogs

And, voila! There are no errors and it works as expected. For now I did

$ pkg lock mail/dovecot
$ pkg lock mail/dovecot-pigeonhole
Comment 1 Mark Linimon freebsd_committer freebsd_triage 2021-07-15 16:15:06 UTC
^Triage: edit Summary and assign.
Comment 2 Kurt Jaeger freebsd_committer freebsd_triage 2021-07-17 07:42:03 UTC
(In reply to Mohammad S. Babaei from comment #0)

The ChangeLog mentions this:

2021-01-22 14:00:21 -0500 Josef 'Jeff' Sipek <jeff.sipek@open-xchange.com> (6e5ae5ef0f)

    lib-compression: Remove xz/lzma write support

    For now, we keep the read support to allow for a more gradual migration from 
    lzma/xz.

    The code has bugs.  Additionally, there is no benefit in keeping it around. 
    bzip2 or zstd (at maximum compression level) are likely better choices for 
    archival.  For non-archival usecases, a light compression algorithm like 
    zstd (at low to medium compression level) or lz4 are better choices.
Comment 3 Mohammad S. Babaei 2021-07-17 18:29:00 UTC
Thank you very much!

I appreciate it if you'd let me know, how can I convert my mailboxes?
Comment 4 Kurt Jaeger freebsd_committer freebsd_triage 2021-07-17 18:40:25 UTC
(In reply to Mohammad S. Babaei from comment #3)
I don't know either. I suggest to ask on the dovecot mailing list, as you are probably not the only one hit by this.

https://dovecot.org/mailman/listinfo/dovecot

And btw, the relnotes mention that only write-support is disabled,
so maybe xz files can still be read by dovecot ?
Comment 5 Mohammad S. Babaei 2021-07-17 18:42:57 UTC
Thank you! I've figured it out. I rebuilt dovecot with LZ4 support and then made the following modification and restarted the server. It works fine now. Although the documentation does not mention which levels are valid for lz4 https://doc.dovecot.org/configuration_manual/zlib_plugin/

-  zlib_save = xz
-  zlib_save_level = 6
+  zlib_save = lz4
+  # You can use per-algorithm compression levels, and defaults. Prior to
+  # v2.3.15, the compression level must be an integer in the range 1 to 9
+  # regardless of the algorithm selected. The default level is 6. These
+  # values may not make sense with compression algorithms other than gz
+  # and bz2. For example, zstd supports levels from -1 to 22 in latest
+  # Zstandard version.
+  #zlib_save_level = 6
Comment 6 Mohammad S. Babaei 2021-07-17 18:46:51 UTC
OK, it seems it's between 1-12. https://www.mankier.com/1/lz4
Comment 7 Larry Rosenman freebsd_committer freebsd_triage 2021-10-17 21:04:42 UTC
Does this need any action from me?
Comment 8 Larry Rosenman freebsd_committer freebsd_triage 2021-10-24 21:08:34 UTC
Again,  Does this need any action from me?
Comment 9 Larry Rosenman freebsd_committer freebsd_triage 2021-11-01 00:28:05 UTC
Looks like there is nothing for me to do.  Closing.  Feel free to reopen/file a new report if that is not the case.