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

Re: bug: git-repack -a -d produces broken pack on NFS

From
Linus Torvalds <torvalds@osdl.org>
Date
Apr 27, 2006, 22:29 UTC
Message-ID
<Pine.LNX.4.64.0604271526140.3701@g5.osdl.org>
In-Reply-To
<7v4q0ek6i3.fsf@assigned-by-dhcp.cox.net>
On Thu, 27 Apr 2006, Junio C Hamano wrote:
Show 11 quoted lines
> Linus Torvalds <torvalds@osdl.org> writes:
> 
> > That said, the pack-file should all be written with the "sha1write()" 
> > interface, which is very careful indeed.
> >
> > I wonder if the _pack-file_ itself might be ok, and the problem is an 
> > index file corruption. For some reason we check the index file first, 
> > which is insane. We should check that the pack-file matches its _own_ SHA1 
> > first, and check the index file second.
> 
> We need to check both, so I fail to see why the order matters.

It's insane to do any _cross_-file checking before you've even verified that the files themselves are valid.

Another way of saying the same thing: checking whether the SHA1 of the pack-file matches the index file is pointless before you've verified that the SHA1 itself is valid.

Basically, if the pack-file is corrupt, you want to know that. You don't want to know that it's SHA1 doesn't match the index file - that's a "secondary" issue to the fact that the SHA1 wasn't correct in the first place.

Right now, if the pack-file is corrupt, it doesn't actually tell us so. It says that it doesn't match the index file. Which is likely wrong - it probably _does_ match the index file, but it's been corrupted.

See the difference?
			Linus
Previous: Junio C HamanoNext: Junio C Hamano
Message 4 of 9 in “bug: git-repack -a -d produces broken pack on NFS”
  1. Alex RiesenApr 27, 2006
  2. Linus TorvaldsApr 27, 2006
  3. Junio C HamanoApr 27, 2006
  4. Linus TorvaldsApr 27, 2006
  5. Junio C HamanoApr 27, 2006
  6. Linus TorvaldsApr 27, 2006
  7. Alex RiesenApr 28, 2006
  8. Linus TorvaldsApr 28, 2006
  9. Linus TorvaldsApr 27, 2006

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.