Git推送通过AFS共享上的git-http-backend随机失败

时间:2011-04-19 11:35:17

标签: git http openafs

我的Git存储库位于AFS共享上。 Linux服务器上的所有正在运行的进程都有权在此AFS共享上写入文件和目录的掩码。

Git通过Git Smart HTTP与Apache和git-http-backend提供。

我遇到的问题是,当我尝试从客户端推送到主服务器时,我必须重复操作3到4次,直到它工作。在Apache服务器端,我看到了这些错误:

致命:未能写对象 错误:将对象添加到存储库数据库的权限不足./objects

在客户端,我有这个错误:

错误:解包失败:unpack-objects异常退出

我不明白为什么它会在3/4次之后工作,因为文件夹上的权利之间不会改变。

有任何线索吗?

谢谢!

吉勒

PS:客户端上的Git版本是git-1.7.3.4-3.6,服务器上的版本是git-1.7.4.1

1 个答案:

答案 0 :(得分:0)

  

为什么它会在3/4次之后工作,因为文件夹中的权限之间不会发生变化。

可能是因为它与权限无关。更有可能的是,通过存储在AFS共享上可以实现一种竞争条件。你最好的赌注是

  • 做'不要那样'(即先存储在本地存储中)
  • 每次使用AFS文档以查找任何相关标记(查找“sync”,“delay”,“cache”或“lazy”)
  • 将其作为AFS用户组的错误/帖子提交

我在we first started out optimizing small writes时看到这样的问题出现在ZFS-fuse上(git做了非常准确和优化的统计更新;如果它不能立即回读,它将会失败)