On 31 May 2017, at 22.56, Joseph Tam <jtam.h...@gmail.com> wrote: > > Timo wrote: > >>>> + If dovecot.index.cache corruption is detected, reset only the one >>>> corrupted mail instead of the whole file. >>> >>> Is this a big performance win? I still have users with jumbo mailboxes >>> who insist on direct mailbox file access using procmail or mail readers, >>> which trigger index rebuilds when dovecot accesses them. >> >> What does Dovecot log then? But probably doesn't affect that. It's >> only when Dovecot logs something about dovecot.index.cache corruption >> that this helps. > > It logs stuff like this > > (Lots of this ...) > May 26 15:22:50 server dovecot: pop3(user): Warning: Transaction log > file /{cachedir}/dovecot.index.log was locked for 43 seconds (rotating while > syncing) > May 27 16:57:18 server dovecot: imap(user): Warning: Transaction log > file /{cachedir}/dovecot.index.log was locked for 105 seconds (Mailbox was > synchronized)
Not really an error, just bad performance. > (... and some this this ...) > May 26 15:43:07 server dovecot: imap(user): Error: Next message > unexpectedly corrupted in mbox file /var/mail/user at 9627641 I guess caused by the direct access. I think not a big problem and won't cause cache corruption. > (... but very rarely this ...) > May 8 17:05:59 server dovecot: imap(user): Error: Corrupted index > cache file /{cachedir}/dovecot.index.cache: Broken virtual size for mail UID > 12032 in mailbox INBOX: read(/var/mail/user): FETCH BODY[] got too little > data: 6199 vs 6201 This new feature would actually help with this. It would mark only the one mail corrupted in cache instead of everything.