Ошибка Github/Cygwin: обнаружено несоответствие базовой линии

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

Вещи, которые я пробовал, включают:

  • удаление cygwin из C:\cygwin и C:\cygwin64 и переустановка
  • переустановка github с помощью деинсталлятора и установщика.
  • удаление github и ручное удаление его локальных и роуминговых папок appdata и переустановка.
  • перезагрузка компьютера.
  • rebasing C:\cygwin, он преуспел, но не исправить никаких проблем.
  • rebasing %appdata%\Local\Github\PortableGit_c7e...\. снова вернула исходную ошибку.

для справки, я запускаю Windows 10 64 бит. Единственный другой вопрос, который я мог найти, что контакт указал на ошибку, которую я получаю, никогда не достигал решения: ссылка здесь

Я не уверен, где еще можно отказаться от просто переустановки окон вообще, любая помощь будет принята с благодарностью.

Ответ 1

Оболочка из git-for-windows (на основе msys2) не является предназначенный для запуска в Cygwin или для другой установки msys2.

GitHub Desktop использует старый git -for- окна (2.5.3, сентябрь 2015 г.)

Для сеанса 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 для запуска сеанса bash на основе Linux.

Или из регулярного сеанса оболочки CMD у вас будет доступ к 200+ командам unix (curl, cat, xargs, ls,...).
Нет необходимости в Cygwin.

Ответ 2

Перезагрузка исправила это для меня. Вероятно, я получил эту ошибку из-за обновления Git для Windows. Попробуйте перезагрузиться, прежде чем делать какие-либо другие сумасшедшие вещи!

Ответ 3

У меня была очень похожая проблема, но ни перезагрузки, ни повторная установка 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

Понадобился время, чтобы понять, что он начался после того, как я прочитал об ошибке Windows, связанной с "Общесистемным обязательным ASLR", и о том, как настройки, доступные через интерфейс Windows, не устанавливают правильные ключи реестра. После того, как моя система стала более безопасной, добавив эту запись в реестр, разблокировка cygwin сломалась:

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 (которую я установил позже. Удаление этого раздела реестра снова устранило проблему.

Ответ 4

OK для меня аналогичная ошибка 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

Ответ 5

некоторые пакеты в MSYS2, которые вы установили, находятся в конфликте с x:\cygwin\bin, поэтому просто удалите MSYS2 PATH в системной среде