347 votes

Extensions de Git : Erreur Win32 487 : Impossible de réserver de l'espace pour le tas de cygwin, erreur Win32 0

Extensions de Git : Tout fonctionnait bien jusqu'à hier.

Mais soudain, j'obtiens cette erreur lorsque j'essaie d'extraire certains dépôts à l'aide de la fonction git extensions

C:\Program Files\Git\bin\git.exe pull --progress "origin" 
Done
    0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
AllocationBase 0x0, BaseAddress 0x68560000, RegionSize 0x390000, State 0x10000
C:\Program Files\Git\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0

Cela se produit pour tous les référentiels que j'ai clonés. Mais, mon git bash fonctionne bien. Je n'ai aucune idée de ce qui se passe. Avez-vous une idée de la raison pour laquelle cela se produit ?

382voto

zainengineer Points 436

J'ai eu le même problème. J'ai trouvé la solution ici http://jakob.engbloms.se/archives/1403

c:\msysgit\bin>rebase.exe -b 0x50000000 msys-1.0.dll

Pour moi, la solution était légèrement différente. Elle était

C:\Program Files (x86)\Git\bin>rebase.exe -b 0x50000000 msys-1.0.dll

J'espère que cela aidera les personnes qui cherchent le problème sur Google.

236voto

Greg Hewgill Points 356191

Cygwin utilise des sections de mémoire partagée persistantes, qui peuvent parfois être corrompues. Le symptôme de ce phénomène est que certains programmes Cygwin commencent à échouer, mais les autres applications ne sont pas affectées. Comme ces sections de mémoire partagée sont persistantes, un redémarrage est souvent nécessaire pour les effacer avant que le problème puisse être résolu.

13voto

VonC Points 414372

J'ai vu le même message d'erreur après la mise à jour vers git1.8.5.2 :

Il suffit de faire une recherche pour tous les msys-1.0.dll sur votre C:\ et faire en sorte que celui utilisé par Git passe en premier.

Par exemple, dans mon cas, j'ai simplement changé l'ordre de :

C:\prgs\Gow\Gow-0.7.0\bin\msys-1.0.dll
C:\prgs\git\PortableGit-1.8.5.2-preview20131230\bin\msys-1.0.dll

En rendant le chemin de Git C:\prgs\git\PortableGit-1.8.5.2-preview20131230\bin\ viennent en premier dans mon %PATH% le message d'erreur a disparu.

Il n'est pas nécessaire de redémarrer ou même de changer de session DOS.
Une fois que le %PATH% est mis à jour dans cette session DOS, les commandes git fonctionnent.


Notez que carmbrester y Sixto Saez tous deux signalent ci-dessous (dans les commentaires) avoir dû redémarrer afin de résoudre le problème.
(et en supprimant d'abord tout msys-1.0.fll comme celui de %LOCALAPPDATA% )

8voto

RobertB Points 2932

Si un redémarrage ne corrige pas le problème (comme le suggère la réponse de Greg Hegwill), vérifiez dans votre PATH s'il n'y a pas d'installation(s) conflictuelle(s) de msys-1.0.dll (et éventuellement d'autres DLL connexes).

Dans ma situation particulière, l'installation de msys par MinGW a une copie de cette DLL dans son fichier bin répertoire ( <MinGW_Install_Path>\msys\1.0\bin ), et il était listé dans le PATH. Le programme de Git cmd était listé dans le PATH, mais son répertoire bin ne l'était pas. (La version de Git de msys-1.0.dll est dans le fichier bin répertoire. Apparemment, l'installation par défaut de MSys-Git n'ajoute pas son répertoire bin à la PATH).

Une solution temporaire a été d'ajouter la fonction de Git bin au PATH pour qu'il apparaisse avant les chemins de MinGW. (Un correctif plus permanent impliquera probablement de résoudre les conflits de chemins entre le msys de MinGW et celui de Git et/ou de supprimer les installations de msys en double).

1voto

P_O Points 18

Je suis tombé sur ça aujourd'hui. En m'inspirant de la réponse de Greg Hewgill, j'ai examiné les processus en cours sur mon système pour voir si quelque chose était "bloqué" ou si d'autres utilisateurs étaient connectés à la machine et faisaient quelque chose avec git. J'ai ensuite lancé cygwin (installé séparément) sur cette machine particulière. Il s'est lancé sans problème. Je l'ai fermé, puis j'ai réessayé les extensions Git (j'essayais une opération d'extraction) et cela a fonctionné. Je ne sais pas si le lancement de cygwin a effacé quelque chose qui était partagé, mais c'est la première fois que j'ai rencontré cette erreur et cela a semblé la résoudre pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X