git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* "git clone --depth=2 git://git.sv.gnu.org/gnulib" hangs
@ 2011-04-25 20:28 Jim Meyering
  2011-04-25 21:16 ` Andreas Schwab
  2011-04-26  7:59 ` Jeff King
  0 siblings, 2 replies; 4+ messages in thread
From: Jim Meyering @ 2011-04-25 20:28 UTC (permalink / raw)
  To: git list

Hello,

We've had a report that this command is hanging:

    git clone --depth=2 git://git.sv.gnu.org/gnulib

cloning without --depth=N works, as well as when using an ssh:// URL,
but most people can use ssh:// URLs.

Normally it wouldn't be much of a problem, but many projects
use gnulib as a submodule, and one of the recommended (scripted)
ways to get a copy is via a shallow clone.

savannah's server is running git-1.7.2.5.
I've confirmed it using these client versions:

    1.7.5.rc3.316.gd1ff9
    1.7.4.4

GIT_TRACE didn't give much info:

    xx$ GIT_TRACE=1 git clone --depth 2 git://git.sv.gnu.org/gnulib
    trace: built-in: git 'clone' '--depth' '2' 'git://git.sv.gnu.org/gnulib'
    Cloning into gnulib...
    trace: run_command: 'index-pack' '--stdin' '-v' '--fix-thin' \
      '--keep=fetch-pack 645 on xx.meyering.net'
    trace: exec: 'git' 'index-pack' '--stdin' '-v' '--fix-thin' \
      '--keep=fetch-pack 645 on xx.meyering.net'
    trace: built-in: git 'index-pack' '--stdin' '-v' '--fix-thin' \
      '--keep=fetch-pack 645 on xx.meyering.net'

It appears to be something specific to the gnulib repository,
since I can do a shallow clone of e.g., this one just fine:

    git://git.savannah.gnu.org/parallel.git

Any hints?

At worst I'll set up a git server on a private system and debug it --
eventually.

Regards,

Jim

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: "git clone --depth=2 git://git.sv.gnu.org/gnulib" hangs
  2011-04-25 20:28 "git clone --depth=2 git://git.sv.gnu.org/gnulib" hangs Jim Meyering
@ 2011-04-25 21:16 ` Andreas Schwab
  2011-04-26  7:59 ` Jeff King
  1 sibling, 0 replies; 4+ messages in thread
From: Andreas Schwab @ 2011-04-25 21:16 UTC (permalink / raw)
  To: Jim Meyering; +Cc: git list

Jim Meyering <jim@meyering.net> writes:

> We've had a report that this command is hanging:
>
>     git clone --depth=2 git://git.sv.gnu.org/gnulib
>
> cloning without --depth=N works, as well as when using an ssh:// URL,
> but most people can use ssh:// URLs.

When cloing without --depth I see the resolving deltas phase busy for a
minute at 50%.  Perhaps related?

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: "git clone --depth=2 git://git.sv.gnu.org/gnulib" hangs
  2011-04-25 20:28 "git clone --depth=2 git://git.sv.gnu.org/gnulib" hangs Jim Meyering
  2011-04-25 21:16 ` Andreas Schwab
@ 2011-04-26  7:59 ` Jeff King
  2011-04-26 16:02   ` Jim Meyering
  1 sibling, 1 reply; 4+ messages in thread
From: Jeff King @ 2011-04-26  7:59 UTC (permalink / raw)
  To: Jim Meyering; +Cc: git list

On Mon, Apr 25, 2011 at 10:28:10PM +0200, Jim Meyering wrote:

> We've had a report that this command is hanging:
> 
>     git clone --depth=2 git://git.sv.gnu.org/gnulib

It might be related to this deadlock which impacts upload-pack on a
server with pthreads serving a shallow clone:

  http://thread.gmane.org/gmane.comp.version-control.git/170789

Unfortunately the fix I posted is not yet in any released version of
git. It is in the current 'next'.

> It appears to be something specific to the gnulib repository,
> since I can do a shallow clone of e.g., this one just fine:
> 
>     git://git.savannah.gnu.org/parallel.git

It's a race condition on filling up a rev-list buffer, so certain repos
may be more prone to triggering the race than others.

-Peff

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: "git clone --depth=2 git://git.sv.gnu.org/gnulib" hangs
  2011-04-26  7:59 ` Jeff King
@ 2011-04-26 16:02   ` Jim Meyering
  0 siblings, 0 replies; 4+ messages in thread
From: Jim Meyering @ 2011-04-26 16:02 UTC (permalink / raw)
  To: Jeff King; +Cc: git list

Jeff King wrote:
> On Mon, Apr 25, 2011 at 10:28:10PM +0200, Jim Meyering wrote:
>> We've had a report that this command is hanging:
>>
>>     git clone --depth=2 git://git.sv.gnu.org/gnulib
>
> It might be related to this deadlock which impacts upload-pack on a
> server with pthreads serving a shallow clone:
>
>   http://thread.gmane.org/gmane.comp.version-control.git/170789

Thanks for the pointer.  That looks very promising.

Hoping to be able to test your fix, I rsync'd the offending repository to
a system on which I can experiment safely, but so far have been unable
to reproduce the failure there.  Of course, if my problem is indeed due
to the race condition bug that your patch fixes, it's not surprising
that it is unreproducible in a different environment.

> Unfortunately the fix I posted is not yet in any released version of
> git. It is in the current 'next'.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-04-26 16:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-25 20:28 "git clone --depth=2 git://git.sv.gnu.org/gnulib" hangs Jim Meyering
2011-04-25 21:16 ` Andreas Schwab
2011-04-26  7:59 ` Jeff King
2011-04-26 16:02   ` Jim Meyering

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).