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

Bug report: v2.47.0 cannot fetch version 1 pack indexes

From
Ffox <fox.gbr@townlong-yak.com>
Date
Oct 19, 2024, 23:22 UTC
Message-ID
<BA07EFA0-0793-420D-BED9-ACD7CEBE0112@townlong-yak.com>
What did you do before the bug happened? (Steps to reproduce your issue)
1. Run git clone https://www.townlong-yak.com/test.git
What did you expect to happen? (Expected behavior)
A local "test" folder to be created with a clone of the remote repository.
What happened instead? (Actual behavior)

The command produces the following output: Cloning into 'test'... error: files '/Users/me/test/.git/objects/pack/tmp_idx_WT81vv' and '/Users/me/test/.git/objects/pack/pack-427331d91391b00844273eeb3879cb479ce2c995.idx' differ in contents fatal: unable to rename temporary '*.idx' file to '/Users/me/test/.git/objects/pack/pack-427331d91391b00844273eeb3879cb479ce2c995.idx' error: Unable to find 6261a9d9f7704c02a5421ff733919ab18793aa7d under https://www.townlong-yak.com/test.git Cannot obtain needed object 6261a9d9f7704c02a5421ff733919ab18793aa7d error: fetch failed.

What's different between what you expected and what actually happened?
The clone fails and no test folder exists after the command completes.
Anything else you want to add:
This scenario works correctly with git v2.46.2 and earlier versions, and began failing with v2.47.0.

Running git-bisect identifies b1b8dfde6929ec9463eca0a858c4adb9786d7c93 as the first bad commit, suggesting that the .idx file downloaded from the remote is now expected to be byte-for-byte identical with a locally-generated version; due to format differences, they are not.

The remote idx is in the original (version 1) format, and git verify-pack seems satisfied with it. Did v2.47.0 intend to block fetching such indices?

[System Info] git version: git version 2.47.0.163.g1226f6d8fa cpu: x86_64 built from commit: 1226f6d8faf60d03cbb3b021c68d48364bf67ac0 sizeof-long: 8 sizeof-size_t: 8 shell-path: /bin/sh feature: fsmonitor--daemon libcurl: 8.7.1 zlib: 1.2.12 uname: Darwin 24.0.0 Darwin Kernel Version 24.0.0: Tue Sep 24 23:36:30 PDT 2024; root:xnu-11215.1.12~1/RELEASE_X86_64 x86_64 compiler info: clang: 16.0.0 (clang-1600.0.26.3) libc info: no libc information available $SHELL (typically, interactive shell): /bin/bash

[Enabled Hooks]
Next: Eric Sunshine
Message 1 of 31 in “Bug report: v2.47.0 cannot fetch version 1 pack indexes”
  1. foxOct 19, 2024
  2. Eric SunshineOct 20, 2024
  3. Taylor BlauOct 21, 2024
  4. Jeff KingOct 20, 2024
  5. Jeff KingOct 20, 2024
  6. Taylor BlauOct 21, 2024
  7. Jeff KingOct 22, 2024
  8. Taylor BlauOct 22, 2024
  9. 0/11 dumb-http pack index v1 regression + cleanupsJeff King, Oct 25, 2024
  10. 01/11 midx: avoid duplicate packed_git entriesJeff King, Oct 25, 2024
  11. Taylor BlauOct 25, 2024
  12. 02/11 t5550: count fetches in "previously-fetched .idx" testJeff King, Oct 25, 2024
  13. 03/11 dumb-http: store downloaded pack idx as tempfileJeff King, Oct 25, 2024
  14. Taylor BlauOct 25, 2024
  15. Jeff KingOct 26, 2024
  16. Taylor BlauOct 28, 2024
  17. 04/11 packfile: drop has_pack_index()Jeff King, Oct 25, 2024
  18. Taylor BlauOct 25, 2024
  19. 05/11 packfile: drop sha1_pack_name()Jeff King, Oct 25, 2024
  20. 06/11 packfile: drop sha1_pack_index_name()Jeff King, Oct 25, 2024
  21. 07/11 packfile: warn people away from parse_packed_git()Jeff King, Oct 25, 2024
  22. Taylor BlauOct 25, 2024
  23. 08/11 http-walker: use object_id instead of bare hashJeff King, Oct 25, 2024
  24. 09/11 packfile: convert find_sha1_pack() to use object_idJeff King, Oct 25, 2024
  25. 10/11 packfile: use object_id in find_pack_entry_one()Jeff King, Oct 25, 2024
  26. Taylor BlauOct 25, 2024
  27. 11/11 packfile: use oidread() instead of hashcpy() to fill object_idJeff King, Oct 25, 2024
  28. Taylor BlauOct 25, 2024
  29. Taylor BlauOct 21, 2024
  30. Jeff KingOct 22, 2024
  31. Taylor BlauOct 22, 2024

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.