我该如何解决'总线错误'当试图做git-commit或git-status时

时间:2011-04-03 00:08:45

标签: git macos bus-error git-status git-commit

我在OS X服务器上有一个git存储库,以前工作正常。我能够添加文件,提交它们,并将内容提取到我的笔记本电脑。

现在,当我进入服务器并在存储库中执行git commitgit status时,我在命令行中看到的只有bus error

git log仍能正常工作并为我提供通常的输出。

我猜测存储库出了问题,因为在同一台服务器上的其他存储库git commitgit status仍然可以正常工作。

如何调试/修复此问题?

更新:我在问题发生之前重新创建了我上次创建的目录。这让我再次git status了!

之后直接运行git commit -a会产生以下错误:

fatal: Unable to create '/path/to/repo/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

然后我手动删除了index.lock文件,现在问题解决了。

我不知道出了什么问题。任何想法..?

2 个答案:

答案 0 :(得分:5)

Bus error表示内存问题;它可能就像磁盘上的损坏文件,git程序中的错误,内存,内存控制器等失败一样简单。

如果您可以在计算机上运行内存测试工具,那将有助于排除内存和控制器故障。 (在大型编译期间,您可能也会发现奇怪的SIGBUSSIGSEGV或其他程序的随机崩溃......)

您可以从笔记本电脑的克隆中重新创建服务器上的存储库,看看它是否正常运行?我的猜测是存储库已损坏,需要用一个好的克隆替换。

答案 1 :(得分:1)

由于macOS Sierra(10.12.3)上的底层文件系统出现问题,我遇到了这个问题。基本上,由于某些原因,我的加密.dmg已损坏 - 我认为由于扩展了hdutils。

DiskUtility诊断出文件系统存在问题,但无法修复它。

我找到的唯一解决方案是重新创建图像并重新克隆回购。