30

最近开始,基本上每次我尝试获取或提交它都会给我这个奇怪的错误。它会不断尝试“重新获取/重新提交”,直到我放弃 and CtrlC.

C:\cygwin\home\git\new_trunk>git sf
      1 [main] perl 760 child_info_fork::abort: address space needed by 'cygreadline7.dll' (0x960000) is already occupied

C:\cygwin\home\git\new_trunk>git svn dcommit
      1 [main] perl 2672 child_info_fork::abort: address space needed by 'cygreadline7.dll' (0x980000) is already occupied

知道为什么会这样吗?

4

4 回答 4

32

重新安装我的 Cygwin 安装为我解决了这个问题。我遵循文档Rebaseall,从 Windows 资源管理器以管理员身份运行 dash ,然后发出以下命令:

/usr/bin/rebaseall -v

PS:不应该运行 Cygwin 服务才能使其正常工作。

于 2014-06-25T17:16:02.457 回答
16

看看这个 Cygwin FAQ 部分这个。在我的情况下,禁用 Avast 的行为和文件系统实时防护,然后重新启动 Cygwin 就是答案。

因此,您可能正在运行 Windows 程序,这些程序将它们的 DLL 挂接到分叉的进程中,从而破坏了地址,从而导致分叉出现故障。

于 2012-06-21T04:52:54.323 回答
7

当我的病毒扫描程序 Symantec Endpoint Protection 升级到 64 位时,我遇到了同样的 fork() 问题,但我仍在运行 32 位版本的 Cygwin。'Rebaseall' 没有帮助。升级到 64 位版本的 Cygwin 为我解决了这个问题。

于 2013-11-24T22:04:24.043 回答
2

正如Tarc 所述,不应运行任何 Cygwin 服务rebaseall。否则你会得到

https://superuser.com/questions/231590/running-rebaseall-on-cygwin

即使在看似关闭所有 Cygwin/Msys2 实例之后,您也可能会像我一样发现问题。使用来自 PortableApps 的 Win 10 和 Msys2,我转到任务管理器,按“命令行”列对列表进行排序。在那里我发现我的 Msys2 的 ssh-agent 仍在运行。我杀了它,然后我可以rebaseall

于 2018-10-07T05:32:51.853 回答