Support #216

MsysGit problem that needs identifying

Added by Squelch about 6 years ago. Updated about 6 years ago.

Status:Closed Start date:02/21/2009
Priority:Normal Due date:
Assignee:- % Done:

100%

Category:-
Target version:-
Close Reason: NGUrl:
BIForumURL: WIKIurl:

Description

One of our users has run into a peculiar problem with their MsysGit installation.

I have tried several different methods to identify and fix the specific problem but it is still prevents them using git.

Existing situation:

  • XP SP3 32bit plenty of free disk space.
  • Git-v1.6.1-msysgit1-2-sb_fix6.exe has been installed.
  • Local environment appears correct, with both path and variable entries set. ie \git\bin and GIT_SSH respectively
  • An existing repository clone exists which also appears to be in order.
  • Git configuration is correct.

This installation was used to clone the repository originally, except for the problem described next.

The problem:

When the user first attempted to use MsysGit they were met with the following error

     0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
AllocationBase 0x0, BaseAddress 0x71540000, RegionSize 0x1C0000, State 0x10000
C:\Program Files\Git\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 487

Some investigation on the net uncovered that there was a rebased msys.dll which apparently fixed this error at the start of 2008. However, this fix has also entered the msys code that Mmsysgit is based on in Sept 2008, so the problem should no longer exist. Regardless, the above error still appears on the users system when using any bash command.

An extensive search for another copy of msys.dll has been performed, and the only one found was where it was installed by msys. Replacing the DLL with the rebased one seems to fix the error when opening Bash, however, git only partially works.

From a command prompt
git status
git config -l
git checkout master -f
git log

All work while in the local repository.

From a Bash prompt
git status
git config -l
git checkout master -f
git log

All return a list of commands as though git alone was called.

If git pull is performed in the windows command prompt, then nothing happens other than a return to the prompt.

Pageant is running with a right key loaded, and a plink to the server returns the expected results.

Exactly the same setup was performed on a tablet PC running XP SP3 to see if this was an XP problem. The error has not preented itself, so this problem is peculiar to the users machine. Short of an OS re-install - which imho is not a way to fix it, I can't think what else to suggest.

In summary: Msys does not work without the rebased dll. Git does not work with the rebased dll

History

Updated by Squelch about 6 years ago

Antivirus tools have been disabled, so has DEP

Updated by Squelch about 6 years ago

The rebased Msys.dll from issue 133 is the one being used now to open bash. The source was madwizard.org and it originates from AVR.

As stated, Bash can now be opened, but git can no longer see its own bin folder, and just outputs the command list.

Updated by kju about 6 years ago

Ok. Well I would go for their issue tracking.

I don't think we can do anything here.
Especially as it's a known issue.

Updated by Squelch about 6 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

This problem is an obscure (read random) problem that Msys suffers from. On some systems it is apparent, on others not. The exact reason for failure still remains unknown.

The rebased mys-1.0.dll that was attempted to be used was older and could only make bash work partially. Despite the same file name, there are different versions of this DLL available to add to the confusion.

Steps required to resolve this problem on systems that suffer from this.

  • Download the rebase executable from the MsysGit server
    bin_rebase.exe
  • Copy this file to \mysygit\bin folder
  • Run this command from a command prompt in the \msysgit\bin directory.
bin_rebase.exe -b 0x30000000 msys-1.0.dll
* When the command completes, the correct DLL has been rebased, and will allow Bash and msysgit to operate normally. The available shells will work correctly as well.

In summary - Do not use older msys-1.0.dll as it will be partially effective. Only use the method described above.

References:
http://code.google.com/p/msysgit/issues/detail?id=133
http://code.google.com/p/msysgit/issues/detail?id=176
http://code.google.com/p/msysgit/issues/detail?id=180

Updated by kju about 6 years ago

good job Squelch!

Updated by Squelch about 6 years ago

  • Status changed from Resolved to Feedback

Johannes - Author of MsysGit has uploaded a rebased msys.1.0.dll that should work without the command line remedial action described earlier. The understanding is that this will be part of the install process once proven to be effective.

http://code.google.com/p/msysgit/issues/detail?id=180

Users who experience these problems are recommended to try this, so that future revisions can be made safe.

Updated by Squelch about 6 years ago

  • Status changed from Feedback to Closed

The latest release of MsysGit appears to fix this.

Also available in: Atom PDF