我见过几个similarquestions这个,但一直没有能够解决我的问题,所以我再次问。Git推“错误:索引包死于信号9”
我添加了一个新文件的负载到现有的启用git的项目,并试图推动它们。当我这样做的推动下,其压缩它们,然后把它们写入,那么当它到达%100失败了这个错误:
error: index-pack died of signal 9 332.28 MiB | 5712 KiB/s
error: pack-objects died with strange error
error: failed to push some refs to '<username>@<my repo location'
事情到目前为止,我曾尝试:
去以回购并确保一切是可写的,就像建议here
设置在.gitattributes上的一些文件类型的
binary -delta
选项将某些文件夹移出(以及git提交删除),以便稍后逐个添加它们。
我有点出类拔萃......//有什么建议吗?感谢您的任何建议 - 最大
编辑 - 我已经发现,这是由于Dreamhost杀死推动由于过度的内存消耗(我做了这个通过复制我的应用程序文件夹到Dreamhost的回购服务器,并进行推从那里)。
我已经found一些pages, - 在git中讨论NO_MMAP=1
选项有助于防止这种情况,但他们在安装git时对它进行了讨论。我可以在现有的git安装中设置此选项吗?它是git-inited应用程序配置的一部分,它正在进行推送,还是它是配置回购的一部分?
编辑2 - 按照上述页面上的说明,我下载并创建了自己的本地git二进制文件,并设置了NO_MMAP = 1选项。
我确定这些是在我的路径中的dreamhost安装版本之前,以及“哪个git”显示我的本地版本,到目前为止这么好。但是,我得到完全相同的问题。
我是否需要使用我的回购库进行操作才能使NO_MMAP选项起作用,或者您认为还有其他问题?
你保持你正在试图推到主机? Signal 9发送的信号有点强烈,您需要确定远程主机上的哪些用户正在将该信号发送到'index-pack'进程。在机器上检查'dmesg'或者'/ var/log'的内容可能会揭示出一些东西。 –
服务器的操作系统是什么?你可以在Windows上使用procmon来查看文件系统上发生的事情等,或者找出在Linux或类似系统上使用strace/ltrace的方法? –
@EmilSit - 作为一个实验,我只是将我的git应用程序文件夹复制到repo所在的同一台服务器上,并将其配置更改为指向本地repo文件夹,以便我的推送*仅在服务器上发生,不需要任何http请求。我明白了:'哎呀!其中一个进程(git,pid 7746)刚刚因资源过度使用而死亡。 有关详细信息,请联系DreamHost支持部门.'因为您可以看到它是一个共享的Dreamhost服务器(所以我的同事不拥有*它本身,但他至少拥有共享位)。 –