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

***DONTUSE*** Re: [PATCH] Use a hashtable for objects instead of a sorted list

From
Junio C Hamano <junkio@cox.net>
Date
Feb 12, 2006, 13:46 UTC
Message-ID
<7virrkbsgp.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<7vlkwgdbk6.fsf_-_@assigned-by-dhcp.cox.net>
I've pushed things out to "master" and "next" branch.
Quite a lot of things.

One thing that I expected to be there is not. It is the hashtable patch. It is in "pu".

I once had it in my private "next", but dropped it before pushing things out.

The problem does not seem to trigger with casual use, but I found that with a clone from my primary repository with '-l -s' (that is, a clone that uses alternates mechanism to borrow from my primary repository), fsck-objects built with the patch seems to report bogus things "missing". I have not traced it fully; instead I ended up spending most of the night (I noticed it at around 01:30 and now it is 05:30 so that's about four hours) recovering some of my refs and double checking if my primary repository is not corrupt X-<. At least, the primary repository looks sane now.

With luck, I would muster enough energy to figure it out, but I need some sleep first.

The problem seems to be very elusive. I took a snapshot of the two repositories involved, so that I can use them as an isolated test case (the one is my primary repository and the other one is the "-l -s" clone). The problem is repeatable, but the SHA1 of the file the broken fsck-objects reports to be missing is different from the one I observed in the first experiment with the real repositories. It appears it has something to do with the directory listing order of fsck-objects, which in turn means the reproduction of the problem is related to memory allocation patterns, so maybe valgrind would help. On the other hand, even if I published a tarball of these two repositories somewhere, other people (or myself) who extract the tarball would probably not see the same SHA1 reported as missing X-<.

Anyway, I've pushed them out before crashing, after I double checked that versions built from my "master" and "next" do not seem to show the problem, while with the one in "pu", the first patch after merging "next" in it being the said patch, exhibits the problem.

Previous: Junio C HamanoNext: Johannes Schindelin
Message 9 of 21 in “Optimization for git-rev-list --objects”
  1. Optimization for git-rev-list --objectsAlexandre Julliard, Feb 11, 2006
  2. Use a hashtable for objects instead of a sorted listJohannes Schindelin, Feb 12, 2006
  3. Junio C HamanoFeb 12, 2006
  4. Alexandre JulliardFeb 12, 2006
  5. Junio C HamanoFeb 12, 2006
  6. Johannes SchindelinFeb 12, 2006
  7. Florian WeimerFeb 12, 2006
  8. ***DONTUSE*** Re: [PATCH] Use a hashtable for objects instead of a sorted listJunio C Hamano, Feb 12, 2006
  9. ***DONTUSE*** Re: [PATCH] Use a hashtable for objects instead of a sorted listJunio C Hamano, Feb 12, 2006
  10. Johannes SchindelinFeb 12, 2006
  11. Junio C HamanoFeb 12, 2006
  12. Linus TorvaldsFeb 12, 2006
  13. Junio C HamanoFeb 12, 2006
  14. binary-tree-based objects.Junio C Hamano, Feb 12, 2006
  15. Linus TorvaldsFeb 12, 2006
  16. Linus TorvaldsFeb 12, 2006
  17. Linus TorvaldsFeb 12, 2006
  18. Junio C HamanoFeb 12, 2006
  19. Junio C HamanoFeb 12, 2006
  20. Linus TorvaldsFeb 12, 2006
  21. Linus TorvaldsFeb 12, 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.