Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

git svn - error under cygwin

Tags:

git

cygwin

I have cygwin and git. I'm trying to commit with git to svn - git svn dcommit. But it fails with strange error:

$ git svn dcommit
      4 [main] perl 5536 C:\cygwin\bin\perl.exe: *** fatal error - unable to remap \\?\C:\cygwin\lib\perl5\5.10\i686-cygwin\auto\List\Util\Util.dll to same address as parent: 0xA20000 != 0xB40000
Stack trace:
Frame     Function  Args
0088B508  6102749B  (0088B508, 00000000, 00000000, 00000000)
0088B7F8  6102749B  (61177B80, 00008000, 00000000, 61179977)
0088C828  61004AFB  (611A136C, 6125AB3C, 00A20000, 00B40000)
End of stack trace

How can I fix it ? Thanks.

P.S. My system is windows 7 64 bit.

Update

reabase helped. but I had to reboot after executing rebase.

like image 955
gor Avatar asked Feb 16 '11 09:02

gor


1 Answers

Did you try a rebaseall like described here?

When you are working with Cygwin, sometimes you will get an error like this

unable to remap some.dll to same address as parent someapp 4292 fork:
child 3964 - died waiting for dll loading, errno 11"

Then you would need to run rebaseall.
In order to run it, close all your Cygwin windows, Execute <cygwin_home>\bin\ash.exe. It will open a new console window. Execute rebaseall there.
Once it has completed, you can go back to running Cygwin again without any issues :-)


The OP gor reports he had to reboot to make rebaseall work.
Dan Moulding mentions in the comments:

I'll just add that closing all Cygwin windows may not be sufficient.
You should make sure all Cygwin processes and services are terminated and/or stopped (ps -a from ash should show nothing but ash and ps) before rebasing.


rsenna reports in the comments:

For an explanation of why this is needed, see fatal error - unable to remap to same address as parent: Cygwin, Ruby on Rails, System calls

So what actually is happening?
Well, in this case, the problem was a result of the way Windows manages its .dll's.

Windows uses ASLR (address space layout randomization) to manage its .dll's. It loads your dll's into different areas of memory every time you boot your computer.
If this gets out of whack then the next time you look for that .dll - you can crash your system. Or if you look in the wrong place, you can crash your system.
So how can this system get out of whack? Well, running your cygwin setup program can affect record keeping, especially if the ASLR has changed but Cygwin is holding on to an older copy (this can happen when setup doesn't complete).

ASLR is a great defense against malware or hackers. Hackers can't constantly try new addresses for your .dll's without crashing your system.

like image 106
VonC Avatar answered Nov 01 '22 02:11

VonC