gpt4 book ai didi

linux - Ubuntu Linux git gc 说错误 : failed to run repack

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

我正在阅读标题相似但似乎与我无关的其他主题。我本地的 ubuntu 盒子里有一个 git repo。我拥有的文件是 mysql 转储,我将每个文件分成 2mb 个文件。当我 git gc 时,这是输出:

git@pc:~/repos/x$ git gc
Counting objects: 17244, done.
Delta compression using up to 4 threads.
Killedssing objects: 90% (2491/2767)
error: failed to run repack

有没有办法追踪是什么原因造成的?我已经试过了

git config --global pack.windowMemory "20m"
git config --global pack.packSizeLimit "20m"
git config --global pack.threads "1"

但这是输出

git@pc:~/repos/x$ git gc
Counting objects: 17244, done.
Killedssing objects: 3% (88/2767)
error: failed to run repack

编辑

这对我有用:

git config --global pack.windowMemory "20m"
git config --global pack.packSizeLimit "20m"
git config --global pack.threads "4"
git config --global pack.window "2"
git config --global pack.depth "10"

好像是因为我只有256 ram vps。和其他进程已经吃了 100mb。我也会尝试升级我的 vps,因为此配置使 git gc 和 git clone 非常慢。

再次编辑经过更多的调查,这是因为线程。我有 4 个虚拟内核分配给我的 vps,当我将 pack.threads“2”放在没有其他内核的位置时,问题就消失了。

我要求我的供应商给我更多的内存,但这没有帮助。只有当我配置线程时。希望这对其他人有帮助

最佳答案

从您的输出来看,该进程似乎被外部进程终止,例如 Linux OOM Killer ,或其他一些资源管理过程,在增量压缩阶段。如果您的内存或磁盘空间不足,那么这为您提供了一个合理的起点来开始您的调查。

您还可以考虑在 strace 下运行您的流程.这通常会告诉您程序在收到信号时正在做什么,但可能并不总能告诉您信号发送者实际上是谁。

如果 strace 失败了,Git 源目前有 12 个对 sigaction(2) 的引用,您可以通过检查 siginfo_t struct 来利用它来确定信号发送者.这很可能需要核心转储或交互式调试器,例如 gdb .

关于linux - Ubuntu Linux git gc 说错误 : failed to run repack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21064094/

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