Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCH/RFC v3 01/13] Move index v2 specific functions to their own file

From: Thomas Rast <hidden>
Date: 2016-06-15 22:54:27

Junio C Hamano [off-list ref] writes:
If you found that an entry you read halfway has an inconsistent crc,
and if you suspect that is because somebody else was writing to the
same index, it is a _sure_ sign that you are not alone, and all the
entries you read so far to the core, even if they weren't touched by
that sombody else when you read them, may be stale, and worse yet,
what you are going to read may be inconsistent with what you've read
and have in-core (e.g. you may have read "f" before somebody else
that is racing with you have turned it into a directory, and your
next read may find "f/d" in the index without crc error).
The intention for v5 (admittedly this probably requires a lot more
documentation) was to only allow an in-place update in two cases:

* updating the data fields (*not* the name) of a file entry,

* adding or removing conflict entries at the end.

The latter probably requires a bit more thought to make it safe, too.
But I think the idea always was that any write that changes the basic
layout of the file (so that you would read something wrong) will need a
full rewrite.  Otherwise we're too far in DB land.  Most updates will be
of the "update the stat and/or sha1 of a file" kind, anyway.

-- 
Thomas Rast
trast@{inf,student}.ethz.ch
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help