Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Perl crash during svn clone #274

Closed
uecasm opened this issue Aug 13, 2015 · 95 comments
Closed

Perl crash during svn clone #274

uecasm opened this issue Aug 13, 2015 · 95 comments

Comments

@uecasm
Copy link

uecasm commented Aug 13, 2015

While trying to git svn clone a large private repository using Git-2.4.5.1-4th-release-candidate-64-bit, it gets some way through the initial fetch and then crashes with:

  0 [main] perl 12640 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdump

The dumpfile contains the following:

Exception: STATUS_ACCESS_VIOLATION at rip=0048360C537
rax=00000006020E4908 rbx=000000005219E248 rcx=000000060003A540
rdx=0000000000000000 rsi=000000000000F4FD rdi=0000000000000004
r8 =0000000000000000 r9 =0000000000000000 r10=0000000000240000
r11=000000048D785FBA r12=0000000000000003 r13=000006FFFFE8A800
r14=0000000601FFAB20 r15=000006FFFFE8A818
rbp=000000000007A7F0 rsp=000000000023BDE0
program=C:\Program Files\Git\usr\bin\perl.exe, pid 12640, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B

I realise this is probably not directly helpful because I can't share the repo so you can't directly reproduce it, but I'm not sure how to diagnose this further. Note that a colleague on a different PC using Git-2.4.6-5th-release-candidate-64-bit is getting similar crashes.

@nalla
Copy link

nalla commented Aug 13, 2015

This is not windows specific. Even under linux if the repository is large enough, git-svn will fail. try calling successive git svn fetch calls to continue.

@uecasm
Copy link
Author

uecasm commented Aug 13, 2015

A few other things that are possibly of interest:

  1. I'm using the -r nnnnn:HEAD option (where nnnnn is from a day or two ago) to clone in order to produce an abbreviated history -- as a result the first commit it imports is quite large, and it's crashing during this first revision import, so successive calls don't help.

  2. Running the same clone operation using Git-2.4.6-5th-release-candidate-32-bit resulted in the following crash dump (also I still had to rebase several SVN DLLs before it would run at all):

    Exception: STATUS_ACCESS_VIOLATION at eip=64B0CC7F
    eax=81CDF488 ebx=521BA170 ecx=FFFDF000 edx=00000000 esi=00066E44 edi=FFD76E50
    ebp=FFD76E50 esp=0028C380 program=C:\Program Files (x86)\git\usr\bin\perl.exe, pid 17404, thread main
    cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B
    Stack trace:
    Frame     Function  Args
    End of stack trace
    
  3. At some previous time (about 9 months and 10,000 SVN revisions ago) a similar clone on the same repository succeeded, while using GfW 1.9.5.

@nalla
Copy link

nalla commented Aug 13, 2015

I'm using the -r nnnnn:HEAD option (where nnnnn is from a day or two ago) to clone in order to produce an abbreviated history -- as a result the first commit it imports is quite large.

That large commit is most probably the cause. The change set is so big that the data perl.exe is trying to analyze does not fit into the memory it can allocate.

@uecasm
Copy link
Author

uecasm commented Aug 13, 2015

Shouldn't it work on the 64-bit version then? Memory limits shouldn't be an issue there.


Hmm. So I tried doing a clone from the same earlier rev# as 9 months ago, and it seemed to run for a lot longer before finally crashing (still during the first commit though). There were 4 perl processes and only one of them was using memory, but even that peaked at only 90 MB or so, so it doesn't seem likely that memory exhaustion would be the culprit.

It bothers me that a Perl script can cause Perl itself to crash without a useful backtrace, though.

Exception: STATUS_ACCESS_VIOLATION at eip=64B0CC7F
eax=848D3F20 ebx=521BA170 ecx=FFFDF000 edx=00000000 esi=00172FD4 edi=FFA72FE0
ebp=FFA72FE0 esp=0028C380 program=C:\Program Files (x86)\git\usr\bin\perl.exe, pid 16980, thread main
cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame     Function  Args
End of stack trace

Since the EIP values seem to be the same in all crashes (on the same version, of course), I took a look at the base addresses; apparently that EIP is in _Delta.dll, in case that helps.

@dscho
Copy link
Member

dscho commented Aug 13, 2015

Sorry, without any way to reproduce here, there is nothing I can do.

@uecasm
Copy link
Author

uecasm commented Aug 13, 2015

According to a debugger, the crashing IP is at:

C:\Program Files (x86)\git\usr\lib\perl5\vendor_perl\auto\SVN\_Delta\_Delta.dll
_Delta!wrap_svn_txdelta_apply+0x1cf

And now I've completely run out of ideas of ways to help track this down.

@dscho
Copy link
Member

dscho commented Aug 13, 2015

I really think that the only way forward here is to give somebody with strong debugging fu (and enough time, so do not look at me) access to said repository.

@dscho
Copy link
Member

dscho commented Aug 13, 2015

C:\Program Files (x86)\

And didn't you intend to use the 64-bit version of Git for Windows?

@nalla
Copy link

nalla commented Aug 13, 2015

Do you have files like Git_git_blob_xxxx_x_xxxxxx or Git_svn_delta_xxxx_x_xxxxxx in your .git folder?

@uecasm
Copy link
Author

uecasm commented Aug 13, 2015

And didn't you intend to use the 64-bit version of Git for Windows?

Yes, but as I mentioned earlier I tried switching to the 32-bit version to see if it helped with this. It didn't, but I haven't switched back yet in order to keep the crash traces consistent.

In theory that symbol trace above might be enough to give a hint to whoever built the SVN DLLs that you're using, if you can tell them which build was used in that particular GfW release. I realise there's probably not much else you can do without a way to reproduce it. (I tried finding a big public repository and seeing if a similar command crashes it, but no such luck yet. Big repos seem hard to find.)

Do you have files like Git_git_blob_xxxx_x_xxxxxx or Git_svn_delte_xxxx_x_xxxxxx in your .git folder?

Yes, they (and a Git_svn_hash file) exist while it's downloading and seem to occasionally have contents, but when it crashed they still exist but seem to be empty.

@uecasm
Copy link
Author

uecasm commented Aug 13, 2015

Well, hey. It took quite a long time to get there, but running this command did indeed cause a crash. Perhaps this will be reproducable?

git svn clone -r 1400000:HEAD --prefix=origin/ svn://anonsvn.kde.org/home/kde/trunk kde

Still on Git-2.4.6-5th-release-candidate-32-bit (not that it seems to make much difference).

Exception: STATUS_ACCESS_VIOLATION at eip=64B0CC7F
eax=818923A8 ebx=521BA170 ecx=FFFDE000 edx=00000000 esi=0004A2DC edi=FFE4A2E8
ebp=FFE4A2E8 esp=0028C3D0 program=C:\Program Files (x86)\git\usr\bin\perl.exe, pid 8684, thread main
cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame     Function  Args
End of stack trace

cding into the directory and running git svn fetch -r 1400000:HEAD does start it running again, but I'm not sure whether it's resuming where it left off or whether it's starting again.

@dscho
Copy link
Member

dscho commented Aug 14, 2015

I'm not sure whether it's resuming where it left off or whether it's starting again.

As pointed out by @nalla, it is safe to fetch after an access violation.

@dscho
Copy link
Member

dscho commented Aug 27, 2015

Still no way to reproduce, eh?

@maoueh
Copy link

maoueh commented Aug 27, 2015

@dscho Facing a similar issue today trying to git svn fetch url svn://sourceware.org/svn/kawa.The initial clone was performed using 1.9.5 version and now, trying to sync it with version 2.5.0 64 bits.

Got 0 [main] perl 12640 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdump at multiple times during git svn fetch and they always recovered at second attempt.

Now, I'm stuck at revision r8526 and git svn fetch simply always crash on revision r8527. Strange thing is sometimes for this commit I get crash dump message, and other time I get this one:

Connection timed out: Error retrieving REPORT: Connection timed out at /mingw64/share/perl5/site_perl/Git/SVN/Ra.pm line 308.

Tried to reproduce with:

git svn clone -r 8526:8528 --prefix=origin/ svn://sourceware.org/svn/kawa/trunk kawa

But this is working as expected. I will launch a full clone using newer 2.5.0 version to see if it works. Cannot start it right now, probably tonight on another computer.

I could upload my full working copy to see if you can reproduce using it if you want. I want to investigate further the crash dump but don't have time right now. Hoping to find a slot next week. Any hints one debugging this?

Extra info just in case:

  • Windows 7 x86_64
  • Git for Windows 2.5.0.windows1 (installed inside a MSYS2 proper)
  • SVN 1.8.13
  • Perl 5.22.0

@uecasm
Copy link
Author

uecasm commented Aug 27, 2015

@dscho My last reply was a reproduction recipe. I'm not sure what more you want.

@dscho
Copy link
Member

dscho commented Aug 28, 2015

Well, hey. It took quite a long time to get there, but running this command did indeed cause a crash. Perhaps this will be reproducable?

git svn clone -r 1400000:HEAD --prefix=origin/ svn://anonsvn.kde.org/home/kde/trunk kde

@uecasm Well, it is kind of a reproduction recipe. The first time I ran it, it crashed after 2m31s, just after adding tests/katetests/regression/tests/indent/ruby/array/array18.txt-script. The second time, it ran for a whopping 10m24 and stopped just after adding ww/sites/www/docbook/xsl-1.65.1/params/preface.autolabel.xml.

I have no doubt that there is some problem, but how would I know whether I fixed it? Is it just taking longer than usual? Did I just paper over the issue?

What I really hoped for was something like a regression test, like https://github.com/git-for-windows/git/blob/master/t/t9100-git-svn-basic.sh, that produces a local Subversion repository (maybe with huge files, or with a lot of files, whatever it takes to reproduce the problem) and that can be tuned to trigger the bug faster.

@maoueh
Copy link

maoueh commented Sep 15, 2015

Here my findings on this issue. In the end, I'm not sure anymore this is the same problem as original author, but I might be wrong.

By using a local svn mirror, I'm not facing the issue. By using svn://sourceware.org/svn/kawa, I'm not facing the issue. However, old clone was using http://sourceware.org/svn/kawa. So I think my crash is related to a rather big commit and a fragile connection via http.

Here (hopefully) reproducible steps (full steps with own svn to git clone in postscript-um at the end of post):

mkdir -p /tmp/git-svn-crash
cd /tmp/git-svn-crash

# Pre-built svn to git repository up to revision 8526 from a local svn mirror (76 Mb)
# Download from http://www.filedropper.com/git and save in folder as `git.zip`
# I also uploaded it to Google Driver and can share link privately if needed
unzip git.zip

cd git
git config --local svn-remote.svn.url http://sourceware.org/svn/kawa
git svn fetch
# Crash or time out

Since sometimes I get a crash and sometimes a connection timeout, they might be highly related in the end. For example, due to long time taken by git when converting commits, the HTTP connection is closed by remote end and sometimes it make perl crash. Other time, it make it display the timeout error.

Matt

P.S. Full steps if you want to do you own svn clone (i.e. without download the pre-built svn to git metadata I uploaded). In case pre-built repository is not accessible anymore or you prefer having your to do svn to git clone yourself.

Doing a direct clone (i.e. using for example svn://sourceware.org/svn/kawa) always failed with some errors about not being able to fetch a particular branch: Network connection closed unexpectedly: Unable to connect to a repository at URL 'svn://sourceware.org/svn/kawa/branches/Winternet' at /mingw64/share/perl5/site_perl/Git/SVN.pm line 1154. That's why I first do a local SVN mirror and then do a git svn clone from this local url which always worked correctly

mkdir -p /tmp/git-svn-crash
cd /tmp/git-svn-crash

svnadmin create svn
printf '#!/bin/sh\nexit 0;\n' > /tmp/git-svn-crash/svn/hooks/pre-revprop-change
svnsync init file:///tmp/git-svn-crash/svn svn://sourceware.org/svn/kawa
svnsync sync file:///tmp/git-svn-crash/svn
# Around 45 minutes

git svn clone -s -r 1:8526 file:///tmp/git-svn-crash/svn git
# Around 180 minutes, uploaded to

cd git
git config --local svn-remote.svn.url http://sourceware.org/svn/kawa
git svn fetch
# Crash or time out

@uecasm
Copy link
Author

uecasm commented Sep 16, 2015

If it exits with an error instead of crashing with an access violation, it's a different issue. And the original issue was reproducible with the svn:// protocol.

@maoueh
Copy link

maoueh commented Sep 16, 2015

Sometimes it's an access violation, other times it's a simpler error message. So, it's both :)

As I already said, its possible both issue are different. On the other side, the crash might be triggered by the same code path withinperl.exe` because both handle big commits. Fixing the reproducible one could solve the other issue at the same time ... or not. Hence, I would not bet on different or related right now.

Maybe you could try doing a local svn mirror and then clone from it instead of the remote end to see if it stills fail. A failure with local svn mirror would highly indicate a different issue. Otherwise, they are probably related.

@ghost
Copy link

ghost commented Sep 25, 2015

I am hitting the same crash during git svn fetch. and I've traced and seem to be a issue of _Delta.dll.

Signal SEGV at /mingw64/share/perl5/site_perl/Git/SVN/Fetcher.pm line 368.
        Git::SVN::Fetcher::apply_textdelta(Git::SVN::Fetcher=HASH(0x6019ad6b0), HASH(0x602fd1098), undef, _p_apr_pool_t=SCALAR(0x602fd0fa8)) called at /usr/lib/perl5/vendor_perl/SVN/Ra.pm line 623
        SVN::Ra::Reporter::AUTOLOAD(SVN::Ra::Reporter=ARRAY(0x602310b10), SVN::Pool=REF(0x601a692f8)) called at /mingw64/share/perl5/site_perl/Git/SVN/Ra.pm line 308
        Git::SVN::Ra::gs_do_update(Git::SVN::Ra=HASH(0x6018cf9d0), 2, 4, Git::SVN=HASH(0x601990138), Git::SVN::Fetcher=HASH(0x6019b1298)) called at /mingw64/share/perl5/site_perl/Git/SVN.pm line 1205
        Git::SVN::do_fetch(Git::SVN=HASH(0x601990138), HASH(0x601a65248), 4) called at /mingw64/share/perl5/site_perl/Git/SVN/Ra.pm line 471
        Git::SVN::Ra::gs_fetch_loop_common(Git::SVN::Ra=HASH(0x6018cf9d0), 4, 4, ARRAY(0x601a64f60)) called at /mingw64/share/perl5/site_perl/Git/SVN.pm line 1963
        Git::SVN::fetch(Git::SVN=HASH(0x601990138), 3, 4) called at /mingw64/share/perl5/site_perl/Git/SVN.pm line 1136
        Git::SVN::find_parent_branch(Git::SVN=HASH(0x601998560), HASH(0x6019b4e28), 466) called at /mingw64/share/perl5/site_perl/Git/SVN.pm line 1200
        Git::SVN::do_fetch(Git::SVN=HASH(0x601998560), HASH(0x6019b4e28), 466) called at /mingw64/share/perl5/site_perl/Git/SVN/Ra.pm line 471
        Git::SVN::Ra::gs_fetch_loop_common(Git::SVN::Ra=HASH(0x6018cf9d0), 402, 6997, ARRAY(0x601945150)) called at /mingw64/share/perl5/site_perl/Git/SVN.pm line 1963
        Git::SVN::fetch(Git::SVN=HASH(0x601998560), 0, 6997) called at /mingw64/share/perl5/site_perl/Git/SVN.pm line 1136
        Git::SVN::find_parent_branch(Git::SVN=HASH(0x60194e360), HASH(0x60194df40), 6998) called at /mingw64/share/perl5/site_perl/Git/SVN.pm line 1200
        Git::SVN::do_fetch(Git::SVN=HASH(0x60194e360), HASH(0x60194df40), 6998) called at /mingw64/share/perl5/site_perl/Git/SVN/Ra.pm line 471
        Git::SVN::Ra::gs_fetch_loop_common(Git::SVN::Ra=HASH(0x6018cf9d0), 6997, 106626, ARRAY(0x600debc60), ARRAY(0x600debc78)) called at /mingw64/share/perl5/site_perl/Git/SVN.pm line 179
        Git::SVN::fetch_all("svn", HASH(0x6018cf730)) called at C:\PortableGit-2.5.2.2-64-bit\mingw64/libexec/git-core\git-svn line 570
        main::cmd_fetch() called at C:\PortableGit-2.5.2.2-64-bit\mingw64/libexec/git-core\git-svn line 386

I 'guess' it might be a bug of upstream project, either Perl or SVN.pm

PS. I work on a local SVN mirror for a few months. and having the issues from time to time. Sometime reboot does fix it, some time does not.
I have to skip&ignore those huge tags/brances as a only workaround.

@PZWulff
Copy link

PZWulff commented Oct 2, 2015

Same problem here. :-(
Another workaround is to temporarily "upgrade" to 1.8.5.2, it works perfectly with huge repos, but you might get other issues with ssl ciphers... At least you can do a clone with that version.

@RWander
Copy link

RWander commented Oct 22, 2015

The same exception.

@AnthonyMastrean
Copy link

I'm also trying to bridge an enormous repository and have a similar error on fetch and clone.

$ git svn clone http://foo/bar
...
      0 [main] perl 20384 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdump
fatal: malformed index info 100644 6a541db94
Exception: STATUS_ACCESS_VIOLATION at rip=0048360C10C
rax=0000000602840C28 rbx=000000005219E248 rcx=000000060003ABF0
rdx=0000000000000000 rsi=000000000000F214 rdi=0000000000000004
r8 =0000000000000000 r9 =0000000000000000 r10=0000000000230000
r11=000000048D78607A r12=0000000000000003 r13=000006FFFFE890B8
r14=00000006019AFA40 r15=000006FFFFE890D0
rbp=00000000000790A8 rsp=000000000022B7E0
program=C:\Program Files\Git\usr\bin\perl.exe, pid 20384, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B

Running fetch again results in, seemingly, the same changeset being pulled down and crashing at the same file/index again.


Windows 7 Pro SP1, 64-bit
Git for Windows 2.6.2

@dscho
Copy link
Member

dscho commented Nov 9, 2015

@AnthonyMastrean if you do not want to investigate the issue and work on a fix (which would admittedly require quite a bit of investment of time and effort on your part), I would suggest to work around the issue by using Vagrant.

@chucklu
Copy link

chucklu commented Nov 16, 2015

@dscho
$ git svn rebase
1 [main] perl 8496 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdump
I can reproduce this problem everytime,

and git svn works perfect in version 1.9.5
I install this setup Git-1.9.5-preview20141217.exe from https://github.com/msysgit/msysgit/releases/tag/Git-1.9.5-preview20141217

I wonder if someone can check the difference between the old version 1.9.5 and current version(after you move from msysgit to here)

It's painful to use the old version for git,just because the git svn can not work properly in new version

@dscho
Copy link
Member

dscho commented Nov 16, 2015

I can reproduce this problem everytime

Congratulations! That means you are in a much better position to debug this than I am.

@chucklu
Copy link

chucklu commented Nov 17, 2015

@dscho I can only debug project created by vs,which used C# .
i found this project has .c and .h
so,c or c++?

@LordOfBytes
Copy link

I have the same problem.
Every time I try to clone my svn repository I get the same error, in the same way, at the same point.

I tried to downgrade to Git version 1.9.5 (the version chucklu mention above) and it gets past the "critical" point where the newest version (2.6.3) fail every time.

Like Chucklu I'm also unable to debug this problem....Who can (and will) help us ?

@andrewlancaster
Copy link

After so many attempts to solve this issue, running it in Command Prompt as Administrator is what got it to work. Kinda silly!

@rubu
Copy link

rubu commented Jan 11, 2017

I don't know if it is of any help, but I stumbled on this issue today while installing a clean development PC and in my case I initially took Git-2.11.0-64-bit.exe which showed all the above symptoms (crashes in perl during svn fetch) but rolling back to Git-2.10.2-64-bit.exe seemed to make the issues go away.

@s-limo
Copy link

s-limo commented Jan 18, 2017

While this may be not real solution (?), I added some entries to .gitconfig and was able to avoid crash:

[core]
  packedGitLimit = 256m
  packedGitWindowSize = 256m
  longpaths = true
[http]
  postBuffer = 524288000
[pack]
  deltaCacheSize = 256m
  packSizeLimit = 256m
  windowMemory = 1024m

And for some projects I've doubled those limits.

P.S. lowering limits might help to reproduce issue.

@red1939
Copy link

red1939 commented Mar 6, 2017

Using version 2.12 the problem seem to go away (2.11 is failing though).

@asheiduk
Copy link

asheiduk commented Mar 7, 2017

I tried to import exactly one revision with several thousand files and very long filenames (i.e. core.longPath=true):

git svn init $URL
git svn fetch -r$REV:$REV

Versions up to and including 2.11 crashed in three of four runs - always at different points.
I noticed that the crashes happen even more times when I added --quiet to the fetch step. So this seems to be some kind of a race condition.

The good news: I tried 2.12 and even with --quiet I had zero crashed in five runs. Who deserves the beer?

@chucklu
Copy link

chucklu commented Mar 8, 2017

@dscho @uecasm @asheiduk
this issue maybe fixed by the commit 80ba04e
I have tested the version 2.12.0,It's working now.

chucklu referenced this issue Mar 8, 2017
* 'svn-escape-backslash' of git://bogomips.org/git-svn:
  git-svn: escape backslashes in refnames
@asheiduk
Copy link

asheiduk commented Mar 10, 2017

@chucklu @dscho I'm not familiar with the code, but I don't think that 80ba04e solved the problem at hand:

  • It handles quoting of refs. My example handles exactly one SVN-Branch and hence one ref in git. The branch name doesn't have any funny characters.
  • My example fetches exactly one revision and crashes at wildly different paths at each run. Other comments also report indeterministic behaviour to some degree. I don't understand how 80ba04e can provoke that - it seems completely deterministic to me.

Skimming through v2.11.0..v2.12.0 in the gitster repo I would expect something like abd5a00 to be the real solution. But don't know whether git-svn calls that piece of code or not.

@dscho
Copy link
Member

dscho commented Apr 4, 2017

I'm not familiar with the code, but I don't think that 80ba04e solved the problem at hand

I would agree. For one, the crashes occur in the Subversion module while running the git-svn Perl script.

To me, it looks as if this is an incorrect cast problem (maybe something in the Subversion module is cast from a pointer to an unsigned long, which works fine on Linux because both data types have the same size there, but on 64-bit Windows, an unsigned long is 32-bit while the pointer is 64-bit). This would also explain why the bug is so elusive to reproduce.

@DragosPT
Copy link

DragosPT commented Apr 5, 2017

I had the same problem and the fix was to properly set the proxy settings in C:\Users[user].subversion\servers

@spashx
Copy link

spashx commented Jun 21, 2017

Same issue on Windows 2012 R2 64 bits/GIT 2.6.3 64 bits/SVN 1.9.5 64 bits with 4.5GB svn repo.
problem SOLVED with upgrade to GIT 2.13.1

@mkrso
Copy link

mkrso commented Jul 6, 2018

This issue still exists for me with 2.18.0 64bit

@dscho
Copy link
Member

dscho commented Aug 25, 2018

@mkrso if it really still exists, even with the newest pre-release (currently https://github.com/git-for-windows/git/releases/tag/v2.19.0-rc0.windows.2), then please make sure to provide a Minimal, Complete & Verifiable Example.

@josesimoes
Copy link

I have version 2.20.1.windows.1 installed and when trying to perform a simple git svn clone (...) it doesn't crash but it just outputs this:

Initialized empty Git repository in E:/temp/xxxxxxx/.git/

and it hangs in there forever. I've tried this a couple of times. The last one left it running for 2 days. I can notice there there a an increase in CPU activity meaning that's doing (trying to) but never ends.

@rimrul
Copy link
Member

rimrul commented Feb 20, 2019

@josesimoes That sounds more like #1993. You're probably cloning via HTTPS and according to the documentation git svn clone runs git svn init and git svn fetch. That hanging issue should be fixed in the next Git for Windows release.

@dscho
Copy link
Member

dscho commented Feb 27, 2019

Can y'all please test with v2.21.0? It should be fixed via #1993.

@breakersun
Copy link

breakersun commented Mar 15, 2019

still got problem with v2.21.0.

Initialized empty Git repository in G:/xxx/.git/
      1 [main] perl 2424 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdump```


perl.exe.stackdump:

Exception: STATUS_ACCESS_VIOLATION at rip=00000000000
rax=0000000000000000 rbx=0000000601130D58 rcx=0000000601139D98
rdx=00000006011420D8 rsi=0000000000000000 rdi=0000000000000011
r8 =0000000000000000 r9 =0000000601177938 r10=0000000100000000
r11=0000000601177938 r12=00000000FFFFC218 r13=0000000601130DE8
r14=0000000601139D98 r15=0000000000000000
rbp=00000000FFFFC210 rsp=00000000FFFFC1A8
program=D:\Program Files\Git\usr\bin\perl.exe, pid 2424, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame        Function    Args
End of stack trace

@dscho
Copy link
Member

dscho commented Mar 15, 2019

still got problem with v2.21.0.

Bummer.

@breakersun please understand that these issues are extremely involved to investigate. So much so that I, for example, cannot afford to invest the time.

Hopefully you can, or maybe you know somebody competent enough who can, an are able to bribe them into doing it.

@breakersun
Copy link

breakersun commented Mar 18, 2019

still got problem with v2.21.0.

Initialized empty Git repository in G:/xxx/.git/
      1 [main] perl 2424 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdump```


perl.exe.stackdump:

Exception: STATUS_ACCESS_VIOLATION at rip=00000000000
rax=0000000000000000 rbx=0000000601130D58 rcx=0000000601139D98
rdx=00000006011420D8 rsi=0000000000000000 rdi=0000000000000011
r8 =0000000000000000 r9 =0000000601177938 r10=0000000100000000
r11=0000000601177938 r12=00000000FFFFC218 r13=0000000601130DE8
r14=0000000601139D98 r15=0000000000000000
rbp=00000000FFFFC210 rsp=00000000FFFFC1A8
program=D:\Program Files\Git\usr\bin\perl.exe, pid 2424, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame        Function    Args
End of stack trace

I figured it out and find a work around for my issue.
The reason is that SVN repo must be accessed via a http/https proxy.
for git-svn for windows, you must add proxy information in $home/.subversion/servers.(c:\Users\ASUS\.subversion\servers), find global sector and uncommet http-proxy-host and http-proxy-host.
on windows, git-svn proxy settings is not same as git proxy settings, that's my problem.

@dscho
Copy link
Member

dscho commented Mar 21, 2019

@breakersun whoa. Good analysis! But the absence of a proxy should not let git svn crash...

Is there any chance that you can debug this, say, by rebuilding the subversion package, patching in debug print statements?

@breakersun
Copy link

@dscho Thank you. I'd like to help. But I need to do some study first cause this is not my expertise.

@frankggyy
Copy link

still got problem with v2.21.0.
Initialized empty Git repository in G:/xxx/.git/
1 [main] perl 2424 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdump```

perl.exe.stackdump:

Exception: STATUS_ACCESS_VIOLATION at rip=00000000000
rax=0000000000000000 rbx=0000000601130D58 rcx=0000000601139D98
rdx=00000006011420D8 rsi=0000000000000000 rdi=0000000000000011
r8 =0000000000000000 r9 =0000000601177938 r10=0000000100000000
r11=0000000601177938 r12=00000000FFFFC218 r13=0000000601130DE8
r14=0000000601139D98 r15=0000000000000000
rbp=00000000FFFFC210 rsp=00000000FFFFC1A8
program=D:\Program Files\Git\usr\bin\perl.exe, pid 2424, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame Function Args
End of stack trace

I figured it out and find a work around for my issue.
The reason is that SVN repo must be accessed via a http/https proxy.
for git-svn for windows, you must add proxy information in $home/.subversion/servers.(c:\Users\ASUS.subversion\servers), find global sector and uncommet http-proxy-host and http-proxy-host.
on windows, git-svn proxy settings is not same as git proxy settings, that's my problem.

Fixed in my environment.

@vitaliyg2
Copy link

vitaliyg2 commented Jun 24, 2019

Same error when try to clone SVN repo over TCP tunnel.
I can access repo using browser and was able to clone it using the SVN client (so this is not a network error), but can't clone because of this error.
This is relatively small repo.
Subsequent git svn fetch results in the same error.

git version 2.22.0.windows.1

0 [main] perl 471 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdump

Exception: STATUS_ACCESS_VIOLATION at rip=00000000000
rax=0000000000000000 rbx=0000000601136838 rcx=000000060113F878
rdx=0000000601147BB8 rsi=0000000000000000 rdi=0000000000000011
r8 =0000000000000000 r9 =000000060117D368 r10=0000000100000000
r11=000000060117D368 r12=00000000FFFFC248 r13=00000006011368C8
r14=000000060113F878 r15=0000000000000000
rbp=00000000FFFFC240 rsp=00000000FFFFC1D8
program=D:\Programs\Git\usr\bin\perl.exe, pid 1680, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame Function Args
End of stack trace

@fuzhibo
Copy link

fuzhibo commented May 22, 2020

Same error when try to clone SVN repo over TCP tunnel, then I use following config:

[core]
       repositoryformatversion = 0
       filemode = false
       bare = false
       logallrefupdates = true
       ignorecase = true
       longpaths = true
       packedGitLimit = 256m
       packedGitWindowsSize = 256m
[http]
       postBuffer = 534288000
[pack]
       deltaCacheSize = 256m
       packSizeLimit = 256m
       windowMemory = 1024m

It worked, but failure with command git svn rebase. The git version is git version 2.26.0.windows.1. Error report is:

Exception: STATUS_ACCESS_VIOLATION at rip=00000000000
rax=0000000000000000 rbx=0000000000000011 rcx=00000006011337F8
rdx=000000060113B838 rsi=00000000FFFFC260 rdi=00000000FFFFC268
r8 =0000000000000000 r9 =000000060113DBB8 r10=00000006011337F8
r11=000000060113DBB8 r12=000000060112A7B8 r13=00000000FFFFC278
r14=00000000FFFFC270 r15=0000000000000000
rbp=000000060112A848 rsp=00000000FFFFC208
program=C:\Program Files\Git\usr\bin\perl.exe, pid 50, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame        Function    Args
End of stack trace

@dscho
Copy link
Member

dscho commented May 22, 2020

@fuzhibo does it work for you if you use Git in WSL?

@fuzhibo
Copy link

fuzhibo commented Jun 30, 2020

@fuzhibo does it work for you if you use Git in WSL?

It seems worked on WSL. However I use command git svn clone --username=xxx -r xxx:HEAD --trunk=xxx <svn url>. @dscho

@carlbjor
Copy link

carlbjor commented Jul 9, 2020

Adding svn proxy settings helped in my case, as @breakersun suggested in a previous comment

https-proxy-host=
http-proxy-port=

@dscho
Copy link
Member

dscho commented Oct 15, 2021

Working on bugs in git svn is extremely involved. Combined with the fact that fewer and fewer people seem to use git svn, I fear that there is little sense in my working on this (or for that matter, any other developer competent enough to debug MSYS2 runtime issues).

I will therefore simply close this ticket.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests