2011-04-03 121 views
6

我在OS X服务器上有一个git存储库,该服务器曾经很好地工作。我能够添加文件,提交它们,并将内容拖到我的笔记本电脑上。如何在尝试执行git-commit或git-status时修复“总线错误”

现在,当我进入服务器并在存储库中执行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,现在的问题就解决了..

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

回答

5

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

如果您可以在计算机上一夜之间运行内存测试工具,那将有助于排除内存和控制器失效。 (您可能还会在大编译时或在其他程序的随机崩溃期间以奇数SIGBUSSIGSEGV发现它们...)

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

+0

谢谢sarnold,你见过我的问题的更新?你认为它只是随机似乎再次运行的事实表明服务器确实存在内存问题? – 2011-04-03 00:27:56

+0

@ Will0,没有进一步的信息,我只是假设陈旧的锁文件是这里所有其他的结果,没有什么可担心的。 (我知道_sounds_愚蠢的,但我不知道如何说它聪明。)如果它不断回来,担心:)但似乎你只是有一个损坏的文件在磁盘上。 (这也可能是值得担心的事情,但除非你注意到更多的腐败,否则我也不会担心。) – sarnold 2011-04-03 00:34:08

+0

太糟糕了,我刚刚遇到了完全相同的问题:S。删除目录允许我再次进行git状态,但由于index.lock文件,提交不再被允许。删除索引。锁定和重新创建相同的目录,一切再次在服务器上工作..现在我害怕? – 2011-04-03 00:47:08

0

由于macOS Sierra(10.12.3)上的底层文件系统问题,我遇到了此问题。基本上,由于某种原因,我的加密.dmg文件已损坏 - 我认为由于使用hdutils进行了扩展。

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

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

相关问题