如何解决"地址空间已被占用"提取/提交错误?

时间:2012-06-19 18:31:50

标签: git cygwin

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

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 个答案:

答案 0 :(得分:29)

重新启动我的Cygwin安装解决了这个问题。我按照文档Rebaseall,从Windows资源管理器运行dash as admin,然后发出以下内容:

/usr/bin/rebaseall -v

P.S。:无法运行Cygwin服务以实现此目的。

答案 1 :(得分:16)

查看this Cygwin FAQ sectionthis too。 在我的情况下,禁用Avast的行为和文件系统实时盾牌和 然后重新启动Cygwind就是答案。

所以,可能,你正在运行将他们的dll挂钩的Windows程序 分叉的过程扰乱了地址,从而导致分叉故障。

答案 2 :(得分:7)

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

答案 3 :(得分:2)

mentioned by Tarc一样,任何Cygwin服务都不应运行到rebaseall。 否则你会得到

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

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