Ubuntu的Linux Git GC说错误:未能运行重新包装

我正在阅读其他类似标题的线程,但似乎与我无关。 我有一个在我的本地ubuntu框git回购。 我有文件MysqL转储我分裂成每个2MB文件。 当我git,这是输出

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

编辑

用户空间中的Linux C / C ++定时器信号处理程序

JVM信号链接SIGPIPE

有效地使用siglongjmp

如何将信号处理程序添加到用Py3k / Python编写的shell中?

显示或redirect一个shell的作业控制消息

这对我工作:

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,因为这个configuration使得git gc和git clone非常慢。

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

我问我的提供商给我更多的内存,但没有帮助。 只有当我configuration线程。 希望这可以帮助别人

find一个正在破坏我的过程的神秘过程

为什么我不能在asyncio事件循环运行时捕获SIGINT?

信号在C中排队

closures控制台时如何正确处理SIGBREAK?

C ++,linux,fork,execvp,waitpid和SIGTSP

从你的输出看来,这个进程看起来像是在一个外部进程中被杀死,比如Linux OOM Killer ,或者其他一些资源管理进程。 如果你的内存或磁盘空间不足,那么这将给你一个合理的地方开始你的调查。

你也可以考虑在strace下运行你的过程。 这通常会告诉你程序在接收到信号时做了什么,但是不一定总是告诉你信号发送者是谁。

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

相关文章

本篇内容主要讲解“gitee如何上传代码”,感兴趣的朋友不妨来...
这篇“从gitee上下的代码如何用”文章的知识点大部分人都不太...
这篇文章主要介绍“gitee如何下载仓库里的项目”,在日常操作...
本篇内容主要讲解“怎么在Gitee上更新代码”,感兴趣的朋友不...
本文小编为大家详细介绍“怎么将工程托管到gitee”,内容详细...
这篇文章主要介绍了gitee中图片大小如何调整的相关知识,内容...