0

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

Git 通过带有 Apache 和 git-http-backend 的 Git Smart HTTP 提供服务。

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

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

在客户端我有这个错误:

error: unpack failed: unpack-objects 异常退出

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

有什么线索吗?

谢谢!

吉尔斯

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

4

1 回答 1

0

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

可能是因为它与权限无关。更有可能的是,存在一种通过存储在 AFS 共享上而成为可能的竞争条件。你最好的选择是

  • 不要“这样做”(即首先存储在本地存储中)
  • 按使用 AFS 文档查找任何相关标志(查找“同步”、“延迟”、“缓存”或“延迟”)
  • 将其归档为 AFS 用户组的错误/帖子

当我们第一次开始优化小型写入时,我已经看到在 ZFS-fuse 上发生过这样的问题(git 做了非常准确和优化的 stat 更新;如果它不能按预期立即读回,它将失败)

于 2011-04-19T12:07:14.090 回答