Re: [PATCH v2 0/4] pack-objects: fix a pair of MIDX bitmap-related races
On Tue, May 24, 2022 at 02:38:39PM -0700, Junio C Hamano wrote:
Show 6 quoted lines
> Taylor Blau <me@ttaylorr.com> writes:
>
> > verbatim reuse (c.f., `write_reused_pack_verbatim()`).
>
> Unlike "e.g." and "i.e.", I think these should all be "cf." (there
> are many others).
Oops. You learn something new everyday! ;-)
Show 25 quoted lines
> > + This patch handles the "preferred" pack (c.f., the section
> > + "multi-pack-index reverse indexes" in
> > + Documentation/technical/pack-format.txt) specially, since pack-objects
> > + depends on reusing exact chunks of that pack verbatim in
> > + reuse_partial_packfile_from_bitmap(). So if that pack cannot be loaded,
> > + the utility of a bitmap is significantly diminished.
>
> It explains why we care about the "preferred" pack, which is a nice
> clarification. It hints that the other packs do not matter as much,
> and it is clearly stated that how they are handled is ...
>
> > + Similar to dc1daacdcc, we could technically just add this check in
> > + reuse_partial_packfile_from_bitmap(), since it's possible to use a MIDX
> > + .bitmap without needing to open any of its packs. But it's simpler to do
> > + the check as early as possible, covering all direct uses of the
> > + preferred pack. Note that doing this check early requires us to call
> > + prepare_midx_pack() early, too, so move the relevant part of that loop
> > + from load_reverse_index() into open_midx_bitmap_1().
> > +
> > + Subsequent patches handle the non-preferred packs in a slightly
> > + different fashion.
>
> ... left for later steps.
>
> Excellent write-up.