Ошибка 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 в системной среде