> Hi all,
>
> Cyrus stores the end of the cache file before starting an
> append operation so that it can truncate back to that point
> if the append is aborted.
>
> Unfortunately, it actually stores cache_len rather than
> cache_size.  That sort of sucks, because cache_len is
> rounded up by quite a bit to allow "slop".  As the cache
> file gets bigger, the slop gets bigger too, and you wind
> up with a whole pile of zero blocks in your cache file,
> making it (even if sparse) somewhat massive.
>
> Oh, and the bogus record(s) that you wrote are going to
> still be (possibly only partially) in the file, because
> the truncate will either be past them, or in the middle
> of them.
>
> This is exacerbated by the fact that duplicate suppression
> seems to need to write to the cache file _before_ it decides
> not to accept the message!
>
> The attached patch fixes the issue, adds a comment, and

Hi Bron,

is there something missing in the patch, because I can't see the "adds a
comment" part?

Thanks,
Simon


----
Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

Reply via email to