Corrupted sizes in cache once again

Tim Evers te-ml-ext at artfiles.de
Wed Feb 1 13:13:18 UTC 2023


Hi,

I run a fairly large Dovecot Installation (around 100k mailboxes) on 
several servers.

gzip compression is on.

Every once in a while I get the dreaded "cache corruption" messages in 
the log:

Error: Corrupted record in index cache file 
/[redacted]/Maildir/dovecot.index.cache: UID 3868: Broken physical size 
in mailbox INBOX: 
read(zlib(/[redacted]/Maildir/cur/1674129792.M797543P21755.node2,S=8099,W=8276:2,)) 
failed: Cached message size smaller than expected (2877 < 8099, 
box=INBOX, UID=3868)

Error: Corrupted record in index cache file 
/[redacted]/Maildir/dovecot.index.cache: UID 3875: Broken physical size 
in mailbox INBOX: 
read(zlib(/[redacted]/Maildir/cur/1674212201.M985809P29112.node2,S=13907,W=14121:2,)) 
failed: Cached message size smaller than expected (5533 < 8192, 
box=INBOX, UID=3875)

The first entry shows 2877 (size on disk) vs. 8099 (real size unzipped, 
also in the filename: S=8099).

The second entry shows 5533 (size on disk) vs. 8192 - this is not 
correct in any way. Size on disk is 13907 as noted in the filename.

Both mails were delivered trough LMTP and retrieved by the POP3 service.

Anyone with an idea what might be happening here? I've read all 
available info in the doc and in the previous discussions / bug reports, 
but nothing seems to match my case. And where does that 8192 come from - 
it looks suspicious?

Version is 2.3.7.2 (Ubuntu 20.04)

doveconf -n excerpt:

protocol lmtp {
   mail_plugins = " old_stats mail_log notify zlib sieve quota"
}
protocol imap {
   mail_max_userip_connections = 50
   mail_plugins = " old_stats mail_log notify zlib imap_old_stats quota 
imap_quota imap_sieve"
}
protocol pop3 {
   mail_max_userip_connections = 50
   mail_plugins = " old_stats mail_log notify zlib"
}

Tim



More information about the dovecot mailing list