2011-04-19 50 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