"Hyrum K. Wright" <hyrum_wri...@mail.utexas.edu> writes:

> On Tue, Apr 13, 2010 at 7:08 AM, Philip Martin 
> <phi...@codematters.co.uk>wrote:
>> > The rep sharing cache is just a cache, and can be truncated or
>> > deleted without impact on the correctness of the system.
>>
>> That's a way to fix a corrupt hotcopy but I don't think it prevents
>> the corruption.
>>
>
> What kind of corruption are we talking about?  The file gets corrupted and
> isn't recognized by SQLite as a valid database?  It sees the file is a valid
> database, but doesn't contain some rows?  The data contained in the SQLite
> data is wrong?

I think there is another problem in 1.6: the rep cache is one of the
last things copied and so it could be newer than the rev files that
got copied, which means it could refer to a rep that didn't get
copied.  A little experimentation shows that such a hotcopy will
verify successfully, however a subsequent commit that uses the missing
rep (which will succeed) produces a corrupt repository.

I think we can avoid this by copying the rep cache before the rev
files.

-- 
Philip

Reply via email to