web-dev-qa-db-ja.com

Github / Cygwinエラー:cygheapベースの不一致が検出されました

Gitは私にこのエラーを与えてきました

    0 [main] sh (47116) C:\Users\Marcus\AppData\Local\GitHub\PortableGit_c7e0cbde92ba565cb218a521411d0e854079a28c\usr\bin\sh.exe: *** fatal error - cygheap base mismatch detected - 0x11C7400/0x1297400.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.
    0 [main] sh 42052 fork: child -1 - forked process 47116 died unexpectedly, retry 0, exit code 0xC0000142, errno 11
/mingw32/libexec/git-core/git-sh-setup: fork: retry: No child processes
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.
    0 [main] sh 42052 fork: child -1 - forked process 47116 died unexpectedly, retry 0, exit code 0xC0000142, errno 11
/mingw32/libexec/git-core/git-sh-setup: fork: retry: No child processes

私が試したものは次のとおりです。

  • C:\cygwinおよびC:\cygwin64からcygwinを削除して再インストールする
  • アンインストーラーとインストーラーを使用してgithubを再インストールします。
  • githubをアンインストールし、ローカルとローミングのappdataフォルダーを手動で削除し、再インストールします。
  • コンピューターの再起動
  • C:\cygwinのリベースは成功しましたが、問題は修正されませんでした。
  • %appdata%\Local\Github\PortableGit_c7e...\.をリベースすると、元のエラーが再び返されました。

参考のために、Windows 10 64ビットを実行しています。私が見つけることができた他の唯一の質問は、私が解決策に到達することは決してないというエラーを指摘しました: リンクはこちら

Windowsを完全に再インストールする以外にどこに行けばいいのかわかりませんが、どんな助けも大歓迎です。

18
Marcus Gosselin

git-for-windowsmsys2 に基づく)からのシェルはCygwinまたはmsys2の別のインストールで実行するためのものではありません。

GitHub Desktop は、 古いgit-for-windows(2.5.3、2015年9月)を使用します

Git bashセッションの場合、CygwinやGitHub Desktopは必要ありません。

あなたが見つけることができる 最新のgit-for-windows azrchiveを解凍します

次に:

cd c:\prgs\git
mklink /J latest PortableGit-2.7.0-64-bit
set GIT_ROOT=c:\prgs\git\latest
set PATH=%PATH%;%GIT_ROOT%;%GIT_ROOT%\bin;%GIT_ROOT%\cmd;%GIT_ROOT%\us`\bin

次に、git-bashと入力して、Linuxベースのbashセッションを起動できます。

または、通常のCMDシェルセッションから、200以上のUNIXコマンド(curlcatxargsls、...にアクセスできます。 )。
Cygwinは不要です。

12
VonC

システムのWindows Defenderセキュリティセンターで 画像の強制ランダム化(強制ASLR) を無効にします。または git実行可能ファイルのASLRを除く

Get-Item -Path "C:\Program Files\Git\usr\bin\*.exe" | %{ Set-ProcessMitigation -Name $_.Name -Disable ForceRelocateImages }
5
pentaadrian

私は非常に似たような問題を抱えていましたが、Gitやcygwinの再起動も再インストールも助けませんでした。私はいつも得た:

      1 [main] sh (12220) C:\Program Files\Git\usr\bin\sh.exe: *** fatal error - cygheap base mismatch detected - 0x37C7408/0x38E7408.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.
      0 [main] sh 6928 fork: child -1 - forked process 12220 died unexpectedly, retry 0, exit code 0xC0000142, errno 11
C:\Program Files\Git\mingw64/libexec/git-core\git-stash: fork: retry: Resource temporarily unavailable

「システム全体の必須ASLR」に関連するWindowsのバグと、Windows UIで使用可能な設定が適切なレジストリキーを設定していないことについて読んだ後に開始したことを理解するのにしばらくかかりました。このレジストリエントリを追加してシステムのセキュリティを強化した後、cygwin forkが壊れました。

Windows Registry Editor Version 5.00 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"MitigationOptions"=hex:00,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00

出典: 必須のASLRの動作の明確化

その結果、git-stashは動作しなくなり、cygwinも動作しません(後でインストールしました。そのレジストリキーを再度削除すると、問題が修正されました。

5
Jakob Ziegler

再起動すると修正されました。 Git for Windowsをアップグレードしたため、このエラーが発生した可能性があります。他のクレイジーなことをする前に再起動してみてください!

4
goamn

同様のエラーffmpeg $ ./configure ...

License: LGPL version 2.1 or later
Creating config.mak, config.h, and doc/config.texi...
      1 [main] cmp (5984) C:\Program Files\Git\usr\bin\cmp.exe: *** fatal error - cygheap base mismatch detected - 0x180326400/0x180330400.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.

「MSYS2を使用してビルドしようとしていますが、明らかに使用できないgit分散cmp.exeファイルに誤ってフェールオーバーしています」(VonCの回答を参照).

私の場合の修正:それらを適切なMSYS2にインストールします:

$ pacman -S make

$ pacman -S diffutils # for cmp package
2
rogerdpack

インストールしたMSYS2の一部のパッケージはx:\ cygwin\binと競合しているため、システム環境でMSYS2 PATHを削除するだけです

0
righere