[PATCH 0/2] pack-objects: fix a pair of MIDX bitmap-related races
- From
Taylor Blau <me@ttaylorr.com>
- Date
- May 13, 2022, 16:23 UTC
- Message-ID
- <cover.1652458395.git.me@ttaylorr.com>
This series fixes two races related to using multi-pack bitmaps in pack-objects.
The crux of both is that we call `is_pack_valid()` far too late, leaving us in a situation where `pack-objects` committed to using objects from a specific pack in the MIDX bitmap, without having actually opened those packs. So if those packs are removed in the background (e.g., due to a simultaneous repack), any ongoing clones or fetches will see this error message:
remote: Enumerating objects: 1498802, done.
remote: fatal: packfile ./objects/pack/pack-$HASH.pack cannot be accessed
remote: aborting due to possible repository corruption on the remote side.See 4c08018204 (pack-objects: protect against disappearing packs, 2011-10-14) and bab919bd44 (pack-bitmap: check pack validity when opening bitmap, 2015-03-26) for previous treatment of similar issues.
Taylor Blau (2): pack-bitmap: check preferred pack validity when opening MIDX bitmap builtin/pack-objects.c: ensure pack validity from MIDX bitmap objects
builtin/pack-objects.c | 8 ++++++-- pack-bitmap.c | 19 +++++++++++++++++-- 2 files changed, 23 insertions(+), 4 deletions(-)
-- 2.36.1.76.g80c0bcd80e