Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#526989: git-svn: git svn clone fails silently

206 views
Skip to first unread message

David Förster

unread,
May 4, 2009, 4:30:25 PM5/4/09
to
Package: git-svn
Version: 1:1.5.6.5-3+lenny1
Severity: normal

When trying to clone a certain subversion repository git svn justs exits after one of the repacking runs performed during cloning and leaves an empty git repository (there are more than 2000 revisions in the repository):

r2000 = 57d59879daad927b9668aaa507fca65a260e6981 (git-svn)
Auto packing your repository for optimum performance. You may also
run "git gc" manually. See "git help gc" for more information.
Counting objects: 12966, done.
Compressing objects: 100% (12851/12851), done.
Writing objects: 100% (12966/12966), done.
Total 12966 (delta 8026), reused 0 (delta 0)
davidf@svn2009:/tmp$ echo $?
141
davidf@svn2009:/tmp$ ls web -la
total 24
drwxr-xr-x 3 davidf davidf 4096 2009-05-04 22:01 .
drwxrwxrwt 4 root root 16384 2009-05-04 22:14 ..
drwxr-xr-x 9 davidf davidf 4096 2009-05-04 22:14 .git
davidf@svn2009:/tmp$ cd web
davidf@svn2009:/tmp/web$ git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)
davidf@svn2009:/tmp/web$

Unfortunately I can not make the subversion repository available but I'll be happy to provide more information or apply patches.


Regards
- David


-- System Information:
Debian Release: 5.0.1
APT prefers stable
APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages git-svn depends on:
ii git-core 1:1.5.6.5-3+lenny1 fast, scalable, distributed revisi
ii libsvn-perl [libsvn-c 1.5.1dfsg1-2 Perl bindings for Subversion
ii libterm-readkey-perl 2.30-4 A perl module for simple terminal
ii libwww-perl 5.813-1 WWW client/server library for Perl

git-svn recommends no packages.

Versions of packages git-svn suggests:
pn git-doc <none> (no description available)
ii subversion 1.5.1dfsg1-2 Advanced version control system

-- no debconf information

--
To UNSUBSCRIBE, email to debian-bugs-...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Jonathan Nieder

unread,
Dec 2, 2009, 3:50:01 PM12/2/09
to
Hi,

Sorry to write so long after your report, but it looks interesting...

David Förster wrote:

> Package: git-svn
> Version: 1:1.5.6.5-3+lenny1
> Severity: normal
>
> When trying to clone a certain subversion repository git svn justs
> exits after one of the repacking runs performed during cloning and
> leaves an empty git repository (there are more than 2000 revisions
> in the repository):

[...]


> Total 12966 (delta 8026), reused 0 (delta 0)
> davidf@svn2009:/tmp$ echo $?
> 141

Strange, killed by SIGPIPE.

If you still have this repository around, can you still reproduce
this? I have no ideas at the moment, so I guess I’d suggest

GIT_TRACE=1 git svn <args>

and

PERLDB_OPTS="NonStop frame=5" perl -d $(git --exec-path)/git-svn <args>

Really, any clues you can come up with would be helpful.

Jonathan

David Förster

unread,
Dec 2, 2009, 6:40:02 PM12/2/09
to
Hi Jonathan,

thanks for your response. Below is the output of git svn clone with GIT_TRACE enabled.
It's 1.6.5.3-1 from unstable on Lenny.

I'll send you the output of the PERLDB_OPTS ... command in private mail.

Thanks for your help.
- David


...
trace: built-in: git 'gc' '--auto'
Auto packing the repository for optimum performance. You may also


run "git gc" manually. See "git help gc" for more information.

trace: run_command: 'pack-refs' '--all' '--prune'
trace: exec: 'git' 'pack-refs' '--all' '--prune'
trace: built-in: git 'pack-refs' '--all' '--prune'
trace: run_command: 'reflog' 'expire' '--all'
trace: exec: 'git' 'reflog' 'expire' '--all'
trace: built-in: git 'reflog' 'expire' '--all'
trace: run_command: 'repack' '-d' '-l'
trace: exec: 'git' 'repack' '-d' '-l'
trace: exec: 'git-repack' '-d' '-l'
trace: run_command: 'git-repack' '-d' '-l'
trace: built-in: git 'rev-parse' '--parseopt' '--' '-d' '-l'
trace: built-in: git 'rev-parse' '--git-dir'
trace: built-in: git 'config' '--bool' 'repack.usedeltabaseoffset'
trace: built-in: git 'pack-objects' '--keep-true-parents' '--honor-pack-keep' '--non-empty' '--all' '--reflog' '--unpacked' '--incremental' '--local' '--delta-base-offset' '/tmp/xpdays-git/.git/objects/.tmp-25869-pack'
Counting objects: 11453, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (11154/11154), done.
Writing objects: 100% (11453/11453), done.
Total 11453 (delta 7006), reused 0 (delta 0)
trace: built-in: git 'prune-packed'
trace: built-in: git 'update-server-info'
trace: run_command: 'prune' '--expire' '2.weeks.ago'
trace: exec: 'git' 'prune' '--expire' '2.weeks.ago'
trace: built-in: git 'prune' '--expire' '2.weeks.ago'
trace: run_command: 'rerere' 'gc'
trace: exec: 'git' 'rerere' 'gc'
trace: built-in: git 'rerere' 'gc'
trace: built-in: git 'rev-list' '--pretty=raw' '--no-color' '--reverse' '4d0037d324833edb50ca85cc82da6ee6804b4f12..refs/remotes/git-svn' '--'
trace: built-in: git 'write-tree'
trace: built-in: git 'cat-file' 'commit' '4d0037d324833edb50ca85cc82da6ee6804b4f12'
trace: built-in: git 'config' '--bool' '--get' 'svn.brokenSymlinkWorkaround'
trace: built-in: git 'config' '--get' 'svn-remote.svn.ignore-paths'
trace: built-in: git 'config' 'svn-remote.svn.reposRoot' 'https://svn-www.xyz.de/web'
trace: built-in: git 'update-index' '-z' '--index-info'
error: git-svn died of signal 13

Jonathan Nieder

unread,
Dec 3, 2009, 12:30:02 AM12/3/09
to
Hi David,

David F�rster wrote:

> I'll send you the output of the PERLDB_OPTS ... command in private mail.

Received; thanks!

> trace: built-in: git 'update-index' '-z' '--index-info'
> error: git-svn died of signal 13

So it looks like git update-index is dying early. To check this:

cp /usr/lib/git-core/git-update-index ../git-ui
sed -e 's/update-index/ui/g' -e '/From which/ s/.*/$SIG{PIPE} = "IGNORE";/' \
-e "s/'DEFAULT'/'IGNORE'/" /usr/lib/git-core/git-svn > ../git-svn
chmod +x ../git-ui ../git-svn
PATH=..:$PATH GIT_TRACE=1 ../git-svn <args>

Could you send the last five or so lines of output from that command?
Hopefully, it will indicate some cause of death for 'git-ui'.

Bug#540150 seems to be about the same problem. Still no hunches from
here, unfortunately.

Jonathan Nieder

unread,
Jun 9, 2012, 8:20:01 PM6/9/12
to
found 526989 git/1:1.7.9-1
found 526989 git/1:1.7.4.4-1
# [1] v1.7.11-rc0~113 (git-svn: ignore SIGPIPE, 2012-04-02)
tags 526989 + patch fixed-upstream
quit

Hi,

David Förster wrote:

> When trying to clone a certain subversion repository git svn justs
> exits
[...]
> davidf@svn2009:/tmp$ echo $?
> 141

Roman Kagan seems to have found the culprit. His explanation[1]:

| In HTTP with keep-alive it's not uncommon for the client to notice that
| the server decided to stop maintaining the current connection only when
| sending a new request. This naturally results in -EPIPE and possibly
| SIGPIPE.
|
| The subversion library itself makes no provision for SIGPIPE. Some
| combinations of the underlying libraries do (typically SIG_IGN-ing it),
| some don't.
|
| Presumably for that reason all subversion commands set SIGPIPE to
| SIG_IGN early in their main()-s.
|
| So should we.

Patch attached. Thoughts of all kinds welcome.

Happily,
Jonathan
git-svn-ignore-SIGPIPE
0 new messages