2011-04-19 82 views
0

我的Git存儲庫位於AFS共享上。 Linux服務器上的所有正在運行的進程都有權在此AFS共享上寫入文件和目錄的掩碼。Git push在AFS共享上通過git-http-backend隨機失敗

Git通過Git Smart HTTP與Apache和git-http-backend一起提供。

我的問題是,當我嘗試從客戶端推送給主服務器時,我必須重複操作3到4次,直到它工作。關於Apache服務器端我看到這些錯誤:

致命的:無法寫入對象 錯誤:沒有足夠的權限,用於添加對象存儲庫數據庫./objects

在客戶端我有這樣的錯誤:

錯誤:解壓縮失敗:解包對象異常退出

我不明白的是爲什麼它在3/4次後工作,因爲在文件夾權限之間沒有改變。

任何線索?

謝謝!

吉爾斯

PS:混帳的客戶端版本是混帳1.7.3.4-3.6和服務器的git-1.7.4.1

回答

0

why is it working after 3/4 times because in between the rights on the folder don't change.

可能是因爲它是不相關的權限。更有可能的是,通過存儲AFS份額,存在一種競爭條件。你最好的賭注將是

  • 做「這樣做」(即商店在本地存儲第一)
  • 每次使用AFS文檔找到任何相關的標誌(尋找「同步」,「延時」, 「緩存」或「懶惰」)
  • 文件時,它作爲AFS用戶羣體中的錯誤/後

we first started out optimizing small writes(GIT確實非常準確和優化的統計類似這樣的問題,對ZFS-保險絲出現我見過更新;如果它不能立即回讀,將會失敗)

+0

好的,非常感謝您提供這些提示,看起來它實際上來自AFS。我會進一步調查,看看我能做些什麼。 – Gilles 2011-04-20 06:11:56