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

Re: git-reflog 70 minutes at 100% cpu and counting

From
EPEric Paris <eparis@redhat.com>
Date
Dec 17, 2009, 16:29 UTC
Message-ID
<1261067369.2868.10.camel@localhost>
In-Reply-To
<alpine.LFD.2.00.0912161841210.23173@xanadu.home>
On Thu, 2009-12-17 at 00:38 -0500, Nicolas Pitre wrote:
Show 29 quoted lines
> Moving the reflog data aside (i.e. mv .git/logs .git/logs.bak) it seems 
> that d936ff8 is not referenced anymore.
> 
> I found the other one as follows:
> 
> First I tried
> 
> $ git rev-list --all --objects
> 
> This resulted in:
> 
> [...]
> 4f7911b0b0dbd187131a109cf00161a0c6a9d727 arch/x86
> ea868257c1eabc31e0ea7941efa42b543978b3fa arch/x86/kvm
> a0c11ead723956c667172a9f3fb6787684fe7ff5 arch/x86/kvm/paging_tmpl.h
> b556b6aad8b1aacfecb1dd4a56dbd389674687b5 arch/x86/kvm/x86.c
> 68a9733ae3315d7e2bfec2037dfeee4db8a6f6a1 drivers
> error: Could not read 29b6c2fb1390b4fd350a5ecc78f1156fc5d91e9f
> fatal: bad tree object 29b6c2fb1390b4fd350a5ecc78f1156fc5d91e9f
> 
> Because of the way objects are enumerated, we can be pretty sure that 
> the bad tree object is referenced by the tree object 68a9733a 
> corresponding to drivers/.  Let's verify that:
> 
> $ git ls-tree 68a9733a
> 100644 blob 00cf9553f74065291612b0971337f79995933a06    Kconfig
> 100644 blob c1bf41737936ab00be4a87563a0bb0638074785d    Makefile
> 040000 tree d4e847de9bf2450842936582ea7cc6778413825b    accessibility
> 040000 tree 29b6c2fb1390b4fd350a5ecc78f1156fc5d91e9f    acpi
This alone almost certainly tells me how I broke it.

For quite some time (a period of months) linux-next was broken and I had to carry a patch to ACPI to make it boot. I dropped that patch at the head of my stgit trees in all of my repositories. So I wouldn't be at all surprised to learn that eventually kernel-2 found that object in kernel-1. Sometime when I dropped that patch from kernel-1 (because it finally got fixed upstream) I can see how it broke.

But now that patch shouldn't be needed by any tree since I have long since dropped it from the stgit stack. So if we cleaned up all of the useless objects in this tree I bet this object wouldn't be needed. Not exactly a situation that I'd expect git to be able to dig out of itself thought.

I'm creating clean repos and going to do no work in my -alt    :)
Thanks everyone!
-Eric
Previous: Nicolas PitreNext: Nicolas Pitre
Message 24 of 30 in “git-reflog 70 minutes at 100% cpu and counting”
  1. Eric ParisDec 14, 2009
  2. Sverre RabbelierDec 14, 2009
  3. Jeff KingDec 14, 2009
  4. Eric ParisDec 14, 2009
  5. Jeff KingDec 14, 2009
  6. Eric ParisDec 14, 2009
  7. Sverre RabbelierDec 14, 2009
  8. Nicolas PitreDec 15, 2009
  9. Jeff KingDec 14, 2009
  10. Nicolas PitreDec 15, 2009
  11. Junio C HamanoDec 15, 2009
  12. Nicolas PitreDec 15, 2009
  13. Eric ParisDec 15, 2009
  14. Nicolas PitreDec 15, 2009
  15. Jeff KingDec 15, 2009
  16. Nicolas PitreDec 15, 2009
  17. Eric ParisDec 15, 2009
  18. Nicolas PitreDec 16, 2009
  19. Eric ParisDec 16, 2009
  20. Eric ParisDec 16, 2009
  21. Nicolas PitreDec 16, 2009
  22. Eric ParisDec 16, 2009
  23. Nicolas PitreDec 17, 2009
  24. Eric ParisDec 17, 2009
  25. Nicolas PitreDec 18, 2009
  26. Steven NoonanDec 18, 2009
  27. Eric ParisDec 18, 2009
  28. Nicolas PitreDec 18, 2009
  29. Steven NoonanDec 18, 2009
  30. Eric ParisDec 18, 2009

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.