On Fri, 2005-06-17 at 12:41 +0100, Chris Wakelin wrote:
Fixed in CVS. The mails weren't being marked as deleted in cache file because of a simple mistake ("!=" -> "=="). So after the change the files still won't get compressed immediately, but it'll work in future.
Thanks! I've applied the fix (I think!) to dovecot-stable-20050617 and am now using it.
I should probably backport that too..
My dovecot.index.cache is 5MB or so at the moment, and still seems to be growing, even when I delete lots of old messages. Presumably there needs to be 20% "deleted space" before anything will happen.
Right. so you'll need to grow and delete 1MB more :)
Does it ever rebuild the cache from scratch in normal operation? What happens if a non-dovecot process deletes messages, do they ever get removed from the cache?
The external process doesn't delete the mail from dovecot.index file, so Dovecot notices that it got deleted and deletes it from index and from cache.
Lastly, do you have a tool or utility to analyse the cache files so I can see how many messages/headers and how much "deleted space" there is? "strings" isn't too reliable an analysis method ;)
Not really.. Wouldn't be too difficult to implement using mail-index.h and mail-cache.h APIs though. Any volunteers? ;)
The cache file anyway heavily relies on index file. Without that there's really know way of knowing what parts of the file belong to which mails (or deleted mails).