* git-reflog infinite loop
@ 2008-06-10 17:44 Pascal Obry
2008-06-11 3:47 ` Jeff King
0 siblings, 1 reply; 5+ messages in thread
From: Pascal Obry @ 2008-06-10 17:44 UTC (permalink / raw)
To: git list
In one of my repository, "git gc" will never terminate.
I have traced to the underlying call git-reflog:
$ git-reflog expire --all
It seems to heat a good amount of heap memory and will keep running
using 100% of CPU.
Is that a known issue?
Thanks,
Pascal.
--
--|------------------------------------------------------
--| Pascal Obry Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--| http://www.obry.net
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: git-reflog infinite loop
2008-06-10 17:44 git-reflog infinite loop Pascal Obry
@ 2008-06-11 3:47 ` Jeff King
2008-06-11 5:46 ` Pascal Obry
2008-06-11 18:58 ` Pascal Obry
0 siblings, 2 replies; 5+ messages in thread
From: Jeff King @ 2008-06-11 3:47 UTC (permalink / raw)
To: Pascal Obry; +Cc: git list
On Tue, Jun 10, 2008 at 07:44:50PM +0200, Pascal Obry wrote:
> In one of my repository, "git gc" will never terminate.
>
> I have traced to the underlying call git-reflog:
>
> $ git-reflog expire --all
>
> It seems to heat a good amount of heap memory and will keep running using
> 100% of CPU.
>
> Is that a known issue?
I can't reproduce here, so presumably it is some condition in your
repository; can you make a tarball of your .git directory available?
-Peff
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: git-reflog infinite loop
2008-06-11 3:47 ` Jeff King
@ 2008-06-11 5:46 ` Pascal Obry
2008-06-11 7:03 ` Jeff King
2008-06-11 18:58 ` Pascal Obry
1 sibling, 1 reply; 5+ messages in thread
From: Pascal Obry @ 2008-06-11 5:46 UTC (permalink / raw)
To: Jeff King; +Cc: git list
Jeff King a écrit :
> I can't reproduce here, so presumably it is some condition in your
> repository;
Yes, I have this problem on a single repository and no problem on the
others (~10).
> can you make a tarball of your .git directory available?
No I can't :(
Is there some git-reflog options I can try to help finding this problem?
Thanks,
Pascal.
--
--|------------------------------------------------------
--| Pascal Obry Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--| http://www.obry.net
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: git-reflog infinite loop
2008-06-11 5:46 ` Pascal Obry
@ 2008-06-11 7:03 ` Jeff King
0 siblings, 0 replies; 5+ messages in thread
From: Jeff King @ 2008-06-11 7:03 UTC (permalink / raw)
To: Pascal Obry; +Cc: git list
On Wed, Jun 11, 2008 at 07:46:13AM +0200, Pascal Obry wrote:
>> can you make a tarball of your .git directory available?
>
> No I can't :(
>
> Is there some git-reflog options I can try to help finding this problem?
Not that I can think of offhand. If I had gotten a copy of the
repository, I would have run it under strace and/or gdb to see what it
was doing while it hung. If you're comfortable with running a debugger,
you might be able to point us to the right part of the code (I'm
assuming there is an infinite loop in there somewhere).
-Peff
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: git-reflog infinite loop
2008-06-11 3:47 ` Jeff King
2008-06-11 5:46 ` Pascal Obry
@ 2008-06-11 18:58 ` Pascal Obry
1 sibling, 0 replies; 5+ messages in thread
From: Pascal Obry @ 2008-06-11 18:58 UTC (permalink / raw)
To: Jeff King; +Cc: git list
Jeff King a écrit :
> I can't reproduce here, so presumably it is some condition in your
> repository; can you make a tarball of your .git directory available?
Ok, mystery solved.
The problem was that the repository had been imported using git-svn and
contained something like 86000 reflog entries in
.git/logs/refs/remotes/pre/trunk.
Using the debugger I have seen that the loop was not endless... but very
slow as there was many many reflog to process. Don't know if this is
expected or not though.
To fix that I have launched:
$ git-reflog expire --expire=10 --all
It has removed all the old reflogs dating from the git-svn initial
import lowering the number of enties in .git/logs/refs/remotes/pre/trunk
to 0 :)
git gc is now working like a charm!
Pascal.
--
--|------------------------------------------------------
--| Pascal Obry Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--| http://www.obry.net
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-06-11 19:00 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-10 17:44 git-reflog infinite loop Pascal Obry
2008-06-11 3:47 ` Jeff King
2008-06-11 5:46 ` Pascal Obry
2008-06-11 7:03 ` Jeff King
2008-06-11 18:58 ` Pascal Obry
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).