Подтвердить что ты не робот

Ошибка Cygwin git fork() при нажатии

Основная проблема заключается в том, что иногда, когда я делаю

git pull upstream master

Я получаю

remote: Counting objects: 172, done.
remote: Compressing objects: 100% (57/57), done.
remote: Total 119 (delta 45), reused 95 (delta 21)
      0 [main] git 8660 fork: child -1 - forked process 4520 died unexpectedly, retry 0, exit code -1073741515, errno 11
error: cannot fork() for index-pack: Resource temporarily unavailable
fatal: fetch-pack: unable to fork off index-pack

Код выхода один и тот же каждый раз, количество объектов меняется, как правило, на номера процессов. Я запускаю аутентификацию открытого ключа против github через ssh в Windows 7. Это происходит с и без ssh-agent. У меня эта проблема уже несколько месяцев, и я работаю над ней, переключаясь на запуск Git Bash (MingW32), всякий раз, когда она возникает, (почти каждый раз с некоторыми репозиториями, а иногда и никогда другие). Однако я обычно предпочитаю среду Cygwin и имею большую часть настроек моего материала, поэтому это перетаскивание, когда я вынужден это сделать.

Некоторое время назад я видел этот пост http://cygwin.com/ml/cygwin/2012-03/msg00025.html, и после прочтения он надеялся, что в следующий раз, когда я обновил Cygwin, это исправление также устранит мою проблему. Это не так, но я не был уверен, что исправление было выпущено, но сегодня я обновляюсь и это происходит.

Я заметил множество электронных писем об ошибках, связанных с fork() для Cygwin Git в Интернете, хотя ни один из них для pull, и поэтому мой вопрос: кто-нибудь видел это на вытягивании раньше, что его вызывает? есть ли способ избежать этого (помимо исправления Git или cygwin или использования какого-либо другого курса реализации:)).

Интересно, что я не видел ни одной из ошибок, для которых я могу найти соответствующие письма Cygwin/ git в Интернете.

4b9b3361

Ответ 1

ОК, я думаю, я должен поделиться. У меня та же проблема, но у меня есть обходной путь. Проблема, по-видимому, связана с длиной PATH. Если я выполню git pull, я получаю отказ вилки:

$ git pull*emphasized text*
      2 [main] git 7384 fork: child -1 - forked process 7420 died unexpectedly, retry 0, exit code -1073741515, errno 11
error: cannot fork() for rev-list: Resource temporarily unavailable
error: Could not run 'git rev-list'
remote: Counting objects: 728, done.
remote: Compressing objects: 100% (456/456), done.
 907550 [main] git 7384 fork: child -1 - forked process 7436 died unexpectedly, retry 0, exit code -1073741515, errno 11
error: cannot fork() for index-pack: Resource temporarily unavailable
fatal: fetch-pack: unable to fork off index-pack

Однако, если я установил PATH на что-то действительно маленькое до запуска git, он работает:

$ PATH=/usr/bin git pull
remote: Counting objects: 728, done.
remote: Compressing objects: 100% (456/456), done.
remote: Total 464 (delta 337), reused 9 (delta 6)
Receiving objects: 100% (464/464), 153.36 KiB, done.
Resolving deltas: 100% (337/337), completed with 107 local objects.
From git://cmake.org/cmake

Мне было бы интересно, если он будет работать для любого из вас?

Ответ 2

Здесь описано: http://cygwin.wikia.com/wiki/Rebaseall

Короче говоря, закройте все окна и запустите это:

C:\cygwin\bin\dash.exe -c '/usr/bin/rebaseall -v'

Это устраняет все связанные проблемы с форкировкой. У меня были проблемы с forking aspell от emacs, а также git.

Ответ 3

Я также столкнулся с такой же проблемой, и перезапуск системы разрешил ее.

Ответ 4

Я понял, что прошло некоторое время, но я обнаружил, что это поиск моей очень похожей проблемы, используя платформу cygwin, встроенную в приложение MobaXterm. Вытягивал мои несуществующие волосы, пытаясь понять это, в конце концов, это было исправлено простым перезапуском.

Я дважды подтвердил, что это работало со второй машиной Windows 10, новой установкой приложений MobaXterm + git и попыткой вытащить из репозитория github. Такая же ошибка: "ошибка: не может fork() для индексного пакета: ресурс временно недоступен", и была перезаписана простая перезагрузка компьютера.

Ответ 5

Вместо того, чтобы устанавливать переменную PATH или использовать полный путь git (один раз), это также должно работать:

git=`which git`
git pull

Это присвоит git полный путь для последовательных вызовов. Теперь, если git используется в другой программе (например, make), он сможет.