From: Martin Langhoff Date: Wed, 19 Oct 2005 20:56:35 GMT Subject: Re: git-send-pack segfaulting on DebianPPC (was: Re: cg-clone, tag objects and cg-push/git-push don't play nice) Message-ID: <46a038f90510191356w56b78413p6b9fe5b67fc9ee74@mail.gmail.com> In-Reply-To: On 10/20/05, Linus Torvalds wrote: > Interesting. > > As you say, I'm obviously testing on ppc all the time, and if > git-fetch-pack has problems on ppc, I haven't seen them. And I fetch a > lot. > > It might be just the repo you're using. I can't test, since I obviously > cannot ssh into the repo you pointed at (I tried to see if you had a > git-daemon running, but no such luck). Ok -- I seem to be wrong in blaming PPC, so it's back to cg-fetch, and I think I have a patch that does the right thing. To recap: repo is slightly broken because cg-fetch has fetched tag objects, but hasn't followed them through to the commit objects they refer to. Internally cg-fetch is actually using git-ssh-fetch (I misreported it using git-fetch-pack), which is working correctly. However, cg-fetch attempts to optimize the fetch process, by not calling git-ssh-fetch if it has the tagobj that the ref points to. How those tag objects get there without commits in the first place I don't know. So I've removed the optimization and life is much better. There is a second bug during the tag fetch. Some of the references (created by git-cvsimport) are multiline, and break cg-fetch. It's probably a bug in git-cvsimport, but I'm fixing cg-fetch to use head -n1 instead of cat. I'll deal with git-cvsimport later. On this broken-ish repo, git-fetch-pack segfaults as I've reported. Running it under strace shows that it dies walking the local repo, trying to find a missing commit. Unlikely that this is PPC only ;-) cheers, martin