当我运行"git status"命令时,出现"fatal: unable to create threaded lstat"错误。

30

您好,StackOverflow团队!

最近我在SiteGround托管上使用的git遇到了奇怪的响应。当我在我的代码库中运行git status命令时,出现以下错误:

serv01.ams38.siteground.eu [~/www/cledu (cart-editor)] git status
fatal: unable to create threaded lstat
serv01.ams38.siteground.eu [~/www/cledu (cart-editor)]

我在网上发现有几个人遇到了类似的问题,我尝试了以下命令:

git config --global pack.windowMemory "100m"
git config --global pack.packSizeLimit "100m"
git config --global pack.threads "1"
git config --global pack.deltaCacheSize "512MiB"
但它并没有解决这个问题。
你能帮我解决一下吗?
最好的祝愿,Chris。

今天我也遇到了同样的问题,而且我也在 Siteground 上。昨天一切都正常。我也尝试了上面的 git config 命令,但没有用。现在,我联系了 Siteground 的支持团队,看看他们能否帮助我解决这个问题。也许他们在服务器上做了些改变。我无法提交,只能拉取。 - jehzlau
Siteground的工作人员最近回复了我的工单,并表示他们正在努力解决这个问题。我认为一旦我的问题得到解决,你的问题也会得到解决,因为我们使用同一家托管公司,几乎同时遇到了这个问题。 - jehzlau
Siteground的支持团队成功解决了我的问题。我建议您也应该提交一个工单。现在我可以提交、推送、检查我的git状态等操作。Siteground支持团队:“我们很高兴地通知您,问题已经解决。为了解决这个问题,我们调整了服务器配置,之后我们就能够提交更改了:” - jehzlau
4个回答

74

如果主机提供商无法删除资源限制,您可以考虑使用git config禁用索引的预加载(线程化lstat)。

git config core.preloadIndex false

如果您需要在克隆初始存储库时进行此设置,则需要全局设置。

git config --global core.preloadIndex false

2
谢谢分享!哇!:D 我还以为世界末日到了。哈哈:D - jehzlau
这在 HostGator 托管中对我有效。 - warren zingwena

2

增加虚拟内存限制可能会有所帮助。我们通过将ulimit -v增加到1048576(1024M)来解决了几个这样的情况。这是一个任意值,我认为不算过高,但足够使用。


谢谢您。我已将命令发送到SiteGround支持工单(因为我没有运行它的权限)。等待他们的答复... - CJ Kepinsky
Chris,几周前我们在所有服务器上增加了用户的虚拟内存限制为1GB,你不应该再遇到这个问题了。 - Vladimir Kirov

0

原因在于git中的this line。pthread_create调用失败,可能是由于服务器端用户允许的线程数量受到某些资源限制。


有没有办法跳过它并让Git重新工作? - CJ Kepinsky
你应该检查git/server日志以获取更多细节,以便检测真正的原因。 - dan
我在那里找到了错误日志,但没有任何最近的条目。 - CJ Kepinsky
你有检查内核日志吗?通常在那里你可以找到原因。 - dan
在根目录中找到了 error_log 文件,但只有一些与 php4 相关的错误。/var/log 文件夹无法访问。看起来 SiteGround 不允许我访问它们。 - CJ Kepinsky
你应该联系他们,因为这听起来像是他们为你的服务设置的系统限制。 - dan

0
如果您的托管提供商正在使用cPanel,请让他们通过WHM禁用Shell Fork Bomb Protection。退出,重新登录。
然后限制根据limits.conf / 90-nproc.conf进行。
启用Shell Fork Bomb Protection后,nproc软限制为35,无论您在上述conf文件中设置了什么。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接