【发布时间】:2011-12-20 13:42:20
【问题描述】:
我已经看到了几个similarquestions,但无法解决我的问题,所以我再次询问。
我向现有的支持 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'
到目前为止我尝试过的事情:
去 repo 并确保一切都是可写的,就像建议的 here
在 .gitattributes 中的某些文件类型上设置
binary -delta选项移出一些文件夹(并 git 提交删除),以便稍后单独添加它们。
我有点没有想法...:/有什么建议吗?感谢任何建议 - 最大
编辑-我后来发现这是由于dreamhost由于过多的内存消耗而终止了推送(我通过将我的应用程序文件夹复制到dreamhost上的repo服务器并从那里进行推送来做到这一点)。
我有found 一些pages,-谈论 git 中的 NO_MMAP=1 选项以帮助防止这种情况,但他们在安装 git 时谈论它。我可以在现有的 git install 中设置此选项吗?它是执行推送的 git-inited 应用程序配置的一部分,还是 repo 配置的一部分?
编辑 2 - 按照上面页面上的说明,我下载并制作了自己的本地 git 二进制文件,并设置了 NO_MMAP=1 选项。
我确保这些是在我的路径中安装了 dreamhost 的版本之前,并且“which git”显示了我的本地版本,到目前为止一切都很好。但是,我遇到了完全相同的问题。
我是否需要对我的 repo 做一些事情以使 NO_MMAP 选项起作用,或者你认为问题是什么?
【问题讨论】:
-
您是否维护您尝试推送到的主机?信号 9 是一个要发送的强信号,您需要确定远程主机上的谁/什么将该信号发送到
index-pack进程。检查机器上的dmesg或/var/log的内容可能会发现一些问题。 -
服务器在什么操作系统上?您可以在 Windows 上使用 procmon 来查看文件系统等上发生了什么,或者找出在 linux 或类似系统上使用 strace/ltrace 的方法?
-
@EmilSit - 作为一个实验,我只是将我的 git app 文件夹复制到 repo 所在的同一服务器,并将其配置更改为指向本地 repo 文件夹,以便我的推送是 只是发生在服务器上,不需要任何http请求。我得到了这个:
Yikes! One of your processes (git, pid 7746) was just killed for excessive resource usage. Please contact DreamHost Support for details.你可以看到它是一个共享的 Dreamhost 服务器(所以我的同事并不拥有它,但他至少拥有那个共享位)。 -
可能有问题的资源是内存。有没有办法让推送使用更少的内存?