git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 3/9] midx: mark bad packed objects

From
Derrick Stolee <dstolee@microsoft.com>
Date
Aug 20, 2018, 16:51 UTC
Message-ID
<20180820165124.152146-4-dstolee@microsoft.com>
In-Reply-To
<20180820165124.152146-1-dstolee@microsoft.com>

When an object fails to decompress from a pack-file, we mark the object as 'bad' so we can retry with a different copy of the object (if such a copy exists).

Before now, the multi-pack-index did not update the bad objects list for the pack-files it contains, and we did not check the bad objects list when reading an object. Now, do both.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
---
 midx.c | 10 ++++++++++
 1 file changed, 10 insertions(+)
diff --git a/midx.c b/midx.c
index 6824acf5f8..7fa75a37a3 100644
--- a/midx.c
+++ b/midx.c
@@ -280,6 +280,16 @@ static int nth_midxed_pack_entry(struct multi_pack_index *m, struct pack_entry *
 	if (!is_pack_valid(p))
 		return 0;
 
+	if (p->num_bad_objects) {
+		uint32_t i;
+		struct object_id oid;
+		nth_midxed_object_oid(&oid, m, pos);
+		for (i = 0; i < p->num_bad_objects; i++)
+			if (!hashcmp(oid.hash,
+				     p->bad_object_sha1 + the_hash_algo->rawsz * i))
+				return 0;
+	}
+
 	e->offset = nth_midxed_offset(m, pos);
 	e->p = p;
 
-- 
2.18.0.118.gd4f65b8d14
Previous: Derrick StoleeNext: Stefan Beller
Message 3 of 18 in “multi-pack-index cleanups”
  1. 0/9 multi-pack-index cleanupsDerrick Stolee, Aug 20, 2018
  2. 1/9 multi-pack-index: provide more helpful usage infoDerrick Stolee, Aug 20, 2018
  3. 3/9 midx: mark bad packed objectsDerrick Stolee, Aug 20, 2018
  4. Stefan BellerAug 20, 2018
  5. Derrick StoleeAug 21, 2018
  6. 4/9 midx: stop reporting garbageDerrick Stolee, Aug 20, 2018
  7. 5/9 midx: fix bug that skips midx with alternatesDerrick Stolee, Aug 20, 2018
  8. 6/9 packfile: add all_packs listDerrick Stolee, Aug 20, 2018
  9. 7/9 treewide: use get_all_packsDerrick Stolee, Aug 20, 2018
  10. Stefan BellerAug 20, 2018
  11. Derrick StoleeAug 21, 2018
  12. 2/9 multi-pack-index: store local propertyDerrick Stolee, Aug 20, 2018
  13. Stefan BellerAug 20, 2018
  14. 8/9 midx: test a few commands that use get_all_packsDerrick Stolee, Aug 20, 2018
  15. Stefan BellerAug 20, 2018
  16. 9/9 pack-objects: consider packs in multi-pack-indexDerrick Stolee, Aug 20, 2018
  17. Duy NguyenAug 21, 2018
  18. Derrick StoleeAug 21, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.