Git 推送通过 AFS 共享上的 git-http-backend 随机失败
我的 Git 存储库位于 AFS 共享上。 Linux 服务器上的所有正在运行的进程都有权在此 AFS 共享上写入文件和目录的掩码。
Git 通过 Git Smart HTTP 以及 Apache 和 git-http-backend 提供服务。
我遇到的问题是,当我尝试从客户端推送到主服务器时,我必须重复该操作 3 到 4 次,直到它起作用。在 Apache 服务器端,我看到这些错误:
fatal: failed to write object 错误:没有足够的权限将对象添加到存储库数据库./objects
在客户端我有这个错误:
错误:解包失败:解包对象异常退出
我不明白的是为什么它在 3/4 次后工作,因为在此期间,文件夹的权限不会改变。
有什么线索吗?
谢谢你!
Gilles
PS:客户端上的Git版本是git-1.7.3.4-3.6,服务器上的Git版本是git-1.7.4.1
My Git repository sits on an AFS share. All running processes on the Linux server have rights to write on this AFS share what ever the mask of files and directories are.
Git is served through Git Smart HTTP with Apache and git-http-backend.
The problem I have, is when I try to push to the master from a client, I have to repeat the operation 3 to 4 times until it works. On the Apache server side I see these errors:
fatal: failed to write object
error: insufficient permission for adding an object to repository database ./objects
On the client side I have this error:
error: unpack failed: unpack-objects abnormal exit
What I don't understand is why is it working after 3/4 times because in between the rights on the folder don't change.
Any clue?
Thank you!
Gilles
PS: version of Git on the client is git-1.7.3.4-3.6 and on the server git-1.7.4.1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可能是因为它与权限无关。更有可能的是,存在一种通过存储在 AFS 共享上而成为可能的竞争条件。您最好的选择是
我在 ZFS-fuse 上看到过类似的问题,当 我们首先开始优化小写入 (git 做得非常准确和优化stat 更新;如果不能立即按预期读回,则会失败)
Probably because it is not permissions related. More likely, there is a kind of race condition that is made possible by storing on the AFS share. Your best bets would be to
I've seen problems like this occur on ZFS-fuse when we first started out optimizing small writes (git does very accurate and optimized stat updates; if it cannot read back as expected immediately, it will fail)