upgrading imapd from 3.4.4 to 3.12.1

IMAP List Administration <[email protected]> Mon, 12 Jan 2026 19:04:13 +0100
Newsgroups gmane.mail.imap.cyrus
Message-ID <[email protected]>
Hi Folks,

I'm in the process of testing an upgrade from 3.4.4 to 3.12.1 (yes, it's been a 
bit neglected).

According to the respective upgrade instructions:

  * For 3.12, the oldest version from which a direct upgrade is possible is 3.10.1
  * For 3.10, the oldest version from which a direct upgrade is possible is
    3.6.3 or 3.8.1
  * 3.8 supports a direct upgrade from 3.4.4

Thus, the upgrade path seems to be: 3.4.4 --> 3.8.6 --> 3.10.2 --> 3.12.1.

On a copy of my data I have done the following:

  * Installed 3.8.6 and 3.10.2 in their own hierarchies under /usr/local/
  * On the copy of the data from a 3.4.4 production system, I ran the following
    commands from imapd v3.8:
      o "*reconstruct -f -G*"
          + This produced a lot of messages like the following (all output save
            in a log with 2028662 lines)
            <mbox> rewrote cache for 11 (offset 0 to 11180, crc 443373517 to
            2940480597/2940480597) /[1074817 entries]/
            <mbox> updating sync_crc_annot 0 => 12345678 /[2882 entries]/
            <mbox> uid 2 mismatch: sentdate (lots and lots of these) /[945923
            entries]/
            Wrong uidvalidity in mbentry, fixing <mbox> (0 -> 1269090320) /[1488
            entries]/
            <mbox> uid 9779 guid mismatch\nrun reconstruct with -R to fix or -U
            to remove /[35 entries]/
            <mbox> uid 3 mismatch: gmtime /[117 entries]/
      o A second pass with "*reconstruct -f -G*" produced:
        <mbox> uid 9779 guid mismatch\nrun reconstruct with -R to fix or -U to
        remove [35 entries]
        <mbox> <mbox> rewrote cache ... /[1 entry]/
        <mbox> uid 647 mismatch: sentdate /[1 entry]/
        <mbox> uid 647 mismatch: gmtime /[1 entry]/
      o "*reconstruct -R*" to try to deal with the "guid mismatch" complaints.
          + None of the above complaints was visible in the output of this pass
      o "*reconstruct -V max*" to bring up the mailbox minor version to the
        current version for 3.8.6. Besides lots of messages about converting
        mboxes from version 13 to 17, this produced some new complaints:
        FAILED TO REPACK <mbox> with new version Mailbox format corruption
        detected /[26 entries]/
  * Next I started the 3.8.6 --> 3.10.2 upgrade:
      o "*reconstruct -f -G*", which produced:
        <mbox> uid 9779 guid mismatch\nrun reconstruct with -R to fix or -U to
        remove /[35 entries -- again]/
        <mbox> updating quota_deleted_used: 0 => 54810 /[42 entries]/
        <mbox> updating quota_expunged_used: 0 => 3922561 /[21 entries]/
        <mbox> rewrote cache for 647 (offset 0 to 1231484, crc 3246604659 to
        3246604659/3246604659) /[1 entry]/
      o "reconstruct -R" to try to fix the "guid mismatch" complaints again.
        This produced:
        <mbox> updating quota_deleted_used: 0 => 1270951 /[42 entries -- again]/
        <mbox> updating quota_expunged_used: 0 => 3922561 /[21 entries -- again]/
      o "*reconstruct -V max*", which, besides lots of "converted <mbox> from 17
        to 19", produced:
        FAILED TO REPACK <mbox> with new version Mailbox format corruption
        detected /[26 entries -- again]/

This is as far as I have gotten. Because some of these 
errors/messages/complaints are not disappearing, I'm worried that I may not be 
performing the steps in the proper order, or may be missing steps. We're not 
using quotas, so maybe the messages involving quotes are not important.

I would be delighted if someone with experience with such upgrades could provide 
some insights into what these messages mean and if/how they must be dealt with.

In particular, I find the "FAILED TO REPACK ... Mailbox format corruption 
detected" messages disturbing. How can I address this?

Regards,
rob

For reference, this is the output of "cyr_info conf" (run with v3.10.2):

> admins: cyrus
> allowusermoves: yes
> altnamespace: no
> configdirectory: /var/imap
> lmtpsocket: /var/spool/lmtp_to_cyrus/lmtp_socket
> loginrealms: host.tld.org
> maxlogins_per_user: 66
> syslog_prefix: imapd
> tls_client_ca_dir: /var/imap/certs
> tls_client_ca_file: /var/imap/certs/our-cert.pem
> tls_required: yes
> tls_server_cert: /var/imap/certs/server.crt
> tls_server_key: /var/imap/certs/server.key
> tls_versions: tls1_2 tls1_3
> userdeny_db: skiplist
> unixhierarchysep: no
> sasl_auxprop_plugin: sasldb
> partition-default: /home/cyrus/imap
> sasl_pwcheck_method: auxprop
> sasl_mech_list: CRAM-MD5 DIGEST-MD5

------------------------------------------
Cyrus: Info
Permalink: https://cyrus.topicbox.com/groups/info/Te091509a211598d8-M7162897b2a7c93ca3145b11f
Delivery options: https://cyrus.topicbox.com/groups/info/subscription