2011-04-03 88 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診斷文件系統的問題,但無法修復它。

我發現的唯一解決方案是重新創建圖像並重新克隆回購。

相關問題