On Wed, 2008-05-21 at 12:21 -1000, Jason Forester wrote:
We have 3 RH5.1 boxes running the stock Postfix 2.3.3, but due to issues with the stock Dovecot 1.0rc15, Redhat supplied us with the version of Dovecot 1.0.7 that will be in Redhat 5.2.
There is one change to Maildir++ quota since v1.0.7: http://hg.dovecot.org/dovecot-1.0/rev/288fd70ac258
But that's mostly an optimization and doesn't cause files to be deleted.
However almost immediately a maildirsize folder vanished. Soon after another, then another, and now we're missing nearly 40 of them.
Maildir++ quota recalculation works like:
Go through all files and sum up their sizes. Keep track of the highest directory mtime. Once everything is calculated, again go through all directories and find the highest mtime. If the highest mtime had increased, something had changed, so delete maildirsize file.
So could it be simply that the recalculation is slow enough that the maildir changes during it and causes the file to be deleted? Another possibility is that some error happens, but then Dovecot should have logged something.
Do you keep your quota limits stored only in the maildirsize file? If not, having the files deleted shouldn't affect functionality, but of course the performance is worse.
The rebuild performance could be improved if maildir filenames contain ",S=xxx" containing the file's size so stat() calls can be avoided. But you can't really change existing filenames without having them show up as new mails.