我在OS X服务器上有一个git存储库,以前工作正常。我能够添加文件,提交它们,并将内容提取到我的笔记本电脑。
现在,当我进入服务器并在存储库中执行git commit
或git status
时,我在命令行中看到的只有bus error
。
git log
仍能正常工作并为我提供通常的输出。
我猜测存储库出了问题,因为在同一台服务器上的其他存储库git commit
和git 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文件,现在问题解决了。
我不知道出了什么问题。任何想法..?
答案 0 :(得分:5)
Bus error
表示内存问题;它可能就像磁盘上的损坏文件,git
程序中的错误,内存,内存控制器等失败一样简单。
如果您可以在计算机上运行内存测试工具,那将有助于排除内存和控制器故障。 (在大型编译期间,您可能也会发现奇怪的SIGBUS
或SIGSEGV
或其他程序的随机崩溃......)
您可以从笔记本电脑的克隆中重新创建服务器上的存储库,看看它是否正常运行?我的猜测是存储库已损坏,需要用一个好的克隆替换。
答案 1 :(得分:1)
由于macOS Sierra(10.12.3)上的底层文件系统出现问题,我遇到了这个问题。基本上,由于某些原因,我的加密.dmg已损坏 - 我认为由于扩展了hdutils。
DiskUtility诊断出文件系统存在问题,但无法修复它。
我找到的唯一解决方案是重新创建图像并重新克隆回购。