<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>Hello.</div>

<div> </div>

<div>We are running dovecot 2.3.13. Full doveconf -n output below</div>

<div> </div>

<div>In 2.3.14 Changelog I found this:</div>

<div> </div>

<div>
<pre>* Remove XZ/LZMA write support. Read support will be removed in future release.</pre>
</div>

<div> </div>

<div>We are using mdbox + XZ/LZMA for alternate storage (messages older than 2 weeks are moved to ALT storage via cron job), so we must convert from XZ to another thing (maybe zstd or bz2).</div>

<div> </div>

<div>Our cron job script:</div>

<div> </div>

<div><strong>/usr/bin/doveadm  -o mdbox_rotate_interval=14d -o mdbox_purge_preserve_alt=no -o mdbox_rotate_size=250m -o zlib_save=xz -o zlib_save_level=9 altmove -u $user</strong></div>

<div> </div>

<div> </div>

<div>My first try to accomplish this conversion, without downtime, is this</div>

<div> </div>

<div>* Pick an user</div>

<div>* Move all ALT messages from that user mailbox to MAIN storage location (doveadm altmove -r)</div>

<div>* Use doveadm altmove with zstd to recompress messages to ALT</div>

<div> </div>

<div> </div>

<div>I have picked an user, and tried this:</div>

<div> </div>

<div><strong> /usr/bin/doveadm altmove -r -u myuser all</strong></div>

<div> </div>

<div> </div>

<div>But it did not work. I expected with that command to move ALL messages from ALT storage to main storage, but 0 messages moved, checked with du -ksh</div>

<div> </div>

<div>What is the proper way to recompress messages in ALT storage in mdbox?</div>

<div> </div>

<div>doveconf -n output:</div>

<div> </div>

<div> </div>

<div>
<div>auth_cache_negative_ttl = 10 secs<br/>
auth_cache_size = 10 M<br/>
auth_cache_ttl = 2 mins<br/>
auth_master_user_separator = *<br/>
auth_worker_max_count = 5500<br/>
base_dir = /var/run/dovecot/<br/>
default_client_limit = 5000<br/>
default_process_limit = 6500<br/>
disable_plaintext_auth = no<br/>
imap_capability = +XLIST<br/>
imap_client_workarounds = tb-extra-mailbox-sep delay-newmail tb-lsub-flags<br/>
imap_id_log = *<br/>
imap_max_line_length = 92 k<br/>
lda_mailbox_autocreate = yes<br/>
lda_mailbox_autosubscribe = yes<br/>
mail_fsync = never<br/>
mail_gid = entrega<br/>
mail_home = /buzones_primarios/%2.26Hn/%2.200Hn/%n/home_usuario<br/>
mail_location = mdbox:/buzones_primarios/%2.26Hn/%2.200Hn/%n:ALT=/buzones_secundarios/%2.26Hn/%2.200Hn/%n:INDEX=/indices_correo/%2.26Hn/%2.200Hn/%n:ITERINDEX<br/>
mail_log_prefix = "%s(%u)<%{session}>: "<br/>
mail_max_userip_connections = 2500<br/>
mail_plugins = " zlib acl quota virtual"<br/>
mail_uid = entrega<br/>
managesieve_notify_capability = mailto<br/>
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<br/>
mdbox_rotate_interval = 1 days<br/>
mdbox_rotate_size = 60 M<br/>
namespace {<br/>
  inbox = yes<br/>
  location =<br/>
  mailbox Drafts {<br/>
    auto = subscribe<br/>
    special_use = \Drafts<br/>
  }<br/>
  mailbox SPAM {<br/>
    auto = subscribe<br/>
    special_use = \Junk<br/>
  }<br/>
  mailbox Sent {<br/>
    auto = subscribe<br/>
    special_use = \Sent<br/>
  }<br/>
  mailbox Trash {<br/>
    auto = subscribe<br/>
    special_use = \Trash<br/>
  }<br/>
  prefix =<br/>
}<br/>
passdb {<br/>
  args = /etc/dovecot/deny<br/>
  deny = yes<br/>
  driver = passwd-file<br/>
}<br/>
passdb {<br/>
  args = /etc/dovecot/dovecot-ldap.conf<br/>
  driver = ldap<br/>
}<br/>
passdb {<br/>
  args = /etc/usuario_maestro.txt<br/>
  driver = passwd-file<br/>
  master = yes<br/>
}<br/>
passdb {<br/>
  args = /etc/dovecot/dovecot-ldap.conf<br/>
  driver = ldap<br/>
}<br/>
plugin {<br/>
  acl = vfile<br/>
  lda_mailbox_autosubscribe = yes<br/>
  quota = dict:Cuota de usuario::file:/indices_correo/cuotas/%n<br/>
  quota_rule2 = Trash:storage=+10%%<br/>
  quota_warning = storage=90%% aviso_cuota 90 %u<br/>
  sieve = /buzones_primarios/%2.26Hn/%2.200Hn/%n/home_usuario/dovecot.sieve<br/>
  sieve_dir = /buzones_primarios/%2.26Hn/%2.200Hn/%n/home_usuario/sieve/<br/>
  sieve_max_redirects = 20<br/>
  zlib_save = gz<br/>
  zlib_save_level = 1<br/>
}<br/>
pop3_no_flag_updates = yes<br/>
protocols = pop3 imap sieve<br/>
service anvil {<br/>
  client_limit = 25000<br/>
}<br/>
service auth {<br/>
  client_limit = 32000<br/>
  unix_listener auth-master {<br/>
    user = entrega<br/>
  }<br/>
  unix_listener auth-userdb {<br/>
    user = entrega<br/>
  }<br/>
  user = root<br/>
}<br/>
service aviso_cuota {<br/>
  executable = script /usr/local/bin/quota-warning.sh<br/>
  unix_listener aviso_cuota {<br/>
    mode = 0666<br/>
  }<br/>
  user = entrega<br/>
}<br/>
service config {<br/>
  process_min_avail = 4<br/>
}<br/>
service imap-login {<br/>
  executable = /usr/libexec/dovecot/imap-login<br/>
  group = dovenull<br/>
  process_min_avail = 2<br/>
  service_count = 0<br/>
  vsz_limit = 1 G<br/>
}<br/>
service imap {<br/>
  executable = /usr/libexec/dovecot/imap<br/>
  process_limit = 8000<br/>
  process_min_avail = 12<br/>
  vsz_limit = 1 G<br/>
}<br/>
service managesieve-login {<br/>
  executable = /usr/libexec/dovecot/managesieve-login<br/>
  inet_listener sieve {<br/>
    port = 2000<br/>
  }<br/>
  process_limit = 2000<br/>
  vsz_limit = 1 G<br/>
}<br/>
service managesieve {<br/>
  executable = /usr/libexec/dovecot/managesieve<br/>
  process_limit = 5000<br/>
}<br/>
service pop3-login {<br/>
  executable = /usr/libexec/dovecot/pop3-login<br/>
  process_limit = 5000<br/>
  process_min_avail = 2<br/>
  service_count = 0<br/>
  vsz_limit = 1 G<br/>
}<br/>
service pop3 {<br/>
  executable = /usr/libexec/dovecot/pop3<br/>
  process_limit = 5000<br/>
}<br/>
service stats {<br/>
  fifo_listener stats-mail {<br/>
    mode = 0600<br/>
    user = entrega<br/>
  }<br/>
}<br/>
ssl_ca = </etc/pki/tls/certificado_europa_2020/CadenaCompletaCA3.crt<br/>
ssl_cert = </etc/pki/tls/certificado_europa_2020/full_chain.pem<br/>
ssl_cipher_list = ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH<br/>
ssl_dh = # hidden, use -P to show it<br/>
ssl_key = # hidden, use -P to show it<br/>
userdb {<br/>
  args = /etc/dovecot/dovecot-ldap.conf<br/>
  driver = ldap<br/>
}<br/>
userdb {<br/>
  args = /etc/dovecot/dovecot-ldap-userdb.conf<br/>
  driver = ldap<br/>
}<br/>
verbose_proctitle = yes<br/>
protocol sieve {<br/>
  managesieve_implementation_string = dovecot<br/>
  managesieve_logout_format = bytes=%i/%o<br/>
  managesieve_max_line_length = 64 k<br/>
}<br/>
protocol lda {<br/>
  hostname = XXXX<br/>
  info_log_path =<br/>
  log_path =<br/>
  mail_fsync = optimized<br/>
  mail_plugins = sieve zlib quota virtual<br/>
  postmaster_address = correo@XXXX<br/>
  syslog_facility = mail<br/>
}<br/>
protocol imap {<br/>
  mail_plugins = zlib quota imap_quota virtual<br/>
}<br/>
protocol pop3 {<br/>
  mail_plugins = zlib quota virtual<br/>
  pop3_enable_last = yes<br/>
  pop3_uidl_format = %g<br/>
}</div>

<div> </div>
</div></div></body></html>