git fetch error: cannot create pipe for ssh: Too many open files fatal: unable -6ren">
gpt4 book ai didi

linux - 为什么 git 在使用 "Too many open files"推送/获取时失败

转载 作者:IT王子 更新时间:2023-10-29 00:25:29 24 4
gpt4 key购买 nike

我遇到 Git 问题,收到以下消息:

> git fetch
error: cannot create pipe for ssh: Too many open files
fatal: unable to fork

系统管理员增加了我的文件限制,但没有解决问题。此外,我对使用 vi 创建新文件没有任何问题。

尝试推送新分支时,我收到类似的消息:

git push origin test_this_broken_git error: cannot create pipe: Too many open files fatal: send-pack: unable to fork off sideband demultiplexer

有人能准确回答为什么会这样吗?我最近没有对我的 git 配置进行任何更改,并且已经手动验证了这一点。

最佳答案

有两条类似的错误信息:

EMFILE: Too many open filesENFILE: Too many open files in system

看起来您正在获取 EMFILE,这意味着超出了单个进程的文件数。因此,检查 vi 是否可以打开文件是无关紧要的——vi 将使用它自己的、单独的文件表。检查您的限制:

$ ulimit -n1024

所以在我的系统上,单个进程中有 1024 个打开文件的限制。您不需要询问您的系统管理员(请不要使用缩写词 SA,它太不透明;如果您必须缩写,请使用“sysadmin”)来提高限制。

您可能希望通过在 strace 下运行 Git 来检查 Git 打开了哪些文件。

这可能是 Git 或库中的错误,也可能是您使用的是旧版本的东西,也可能是更奇怪的东西。首先尝试 strace 以查看它打开了哪些文件,并检查 Git 是否关闭了这些文件。

来自 Hazok 的更新:

按照上面的建议,原来是松动的东西太多导致的。松散的对象太多,因为 git gc 没有经常运行。

关于linux - 为什么 git 在使用 "Too many open files"推送/获取时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15375454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com