Re: Cache truncation bug on aborted appends

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 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

[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux