You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
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.
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.
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.
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
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.
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.
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.
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.
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.
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 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.
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)
@josesimoes That sounds more like #1993. You're probably cloning via HTTPS and according to the documentationgit svn clone runs git svn init and git svn fetch. That hanging issue should be fixed in the next Git for Windows release.
@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.
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.
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.
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
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).
Activity
nalla commentedon 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 fetchcalls to continue.uecasm commentedon Aug 13, 2015
A few other things that are possibly of interest:
I'm using the
-r nnnnn:HEADoption (wherennnnnis from a day or two ago) toclonein 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.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):
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 commentedon Aug 13, 2015
That large commit is most probably the cause. The change set is so big that the data
perl.exeis trying to analyze does not fit into the memory it can allocate.uecasm commentedon 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.
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 commentedon Aug 13, 2015
Sorry, without any way to reproduce here, there is nothing I can do.
uecasm commentedon Aug 13, 2015
According to a debugger, the crashing IP is at:
And now I've completely run out of ideas of ways to help track this down.
dscho commentedon 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 commentedon Aug 13, 2015
And didn't you intend to use the 64-bit version of Git for Windows?
nalla commentedon Aug 13, 2015
Do you have files like
Git_git_blob_xxxx_x_xxxxxxorGit_svn_delta_xxxx_x_xxxxxxin your.gitfolder?uecasm commentedon Aug 13, 2015
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.)
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 commentedon 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?
Still on Git-2.4.6-5th-release-candidate-32-bit (not that it seems to make much difference).
cding into the directory and runninggit svn fetch -r 1400000:HEADdoes start it running again, but I'm not sure whether it's resuming where it left off or whether it's starting again.dscho commentedon Aug 14, 2015
As pointed out by @nalla, it is safe to fetch after an access violation.
dscho commentedon Aug 27, 2015
Still no way to reproduce, eh?
maoueh commentedon Aug 27, 2015
@dscho Facing a similar issue today trying to
git svn fetchurlsvn://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.stackdumpat multiple times duringgit svn fetchand they always recovered at second attempt.Now, I'm stuck at revision
r8526andgit svn fetchsimply always crash on revisionr8527. Strange thing is sometimes for this commit I get crash dump message, and other time I get this one:Tried to reproduce with:
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:
69 remaining items
rimrul commentedon Feb 20, 2019
@josesimoes That sounds more like #1993. You're probably cloning via HTTPS and according to the documentation
git svn clonerunsgit svn initandgit svn fetch. That hanging issue should be fixed in the next Git for Windows release.dscho commentedon Feb 27, 2019
Can y'all please test with v2.21.0? It should be fixed via #1993.
breakersun commentedon Mar 15, 2019
still got problem with v2.21.0.
dscho commentedon Mar 15, 2019
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 commentedon Mar 18, 2019
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 commentedon Mar 21, 2019
@breakersun whoa. Good analysis! But the absence of a proxy should not let
git svncrash...Is there any chance that you can debug this, say, by rebuilding the
subversionpackage, patching in debug print statements?breakersun commentedon Mar 27, 2019
@dscho Thank you. I'd like to help. But I need to do some study first cause this is not my expertise.
frankggyy commentedon May 6, 2019
Fixed in my environment.
vitaliyg2 commentedon 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 commentedon May 22, 2020
Same error when try to clone SVN repo over TCP tunnel, then I use following config:
It worked, but failure with command
git svn rebase. The git version isgit version 2.26.0.windows.1. Error report is:dscho commentedon May 22, 2020
@fuzhibo does it work for you if you use Git in WSL?
fuzhibo commentedon Jun 30, 2020
It seems worked on WSL. However I use command
git svn clone --username=xxx -r xxx:HEAD --trunk=xxx <svn url>. @dschocarlbjor commentedon Jul 9, 2020
Adding svn proxy settings helped in my case, as @breakersun suggested in a previous comment
dscho commentedon Oct 15, 2021
Working on bugs in
git svnis extremely involved. Combined with the fact that fewer and fewer people seem to usegit 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.