我有以下通话结构:
- 詹金斯奔跑
fab -Huser@host set_repository_commit_hash:123abc
。 set_repository_commit_hash
git fetch
与运行pty = False
。- 子进程
ssh git@github.com git-upload-pack 'user/repository.git'
永远不会完成。
我尝试git fetch
在本地克隆中运行,但成功了,但是运行ssh git@github.com git-upload-pack 'user/repository.git'
只会返回以下内容并挂起:
00ab84249d3bb20930c185c08848c60b71f7b28990d6 HEADmulti_ack thin-pack side-band side-band-64k ofs-delta shallow no-progress include-tag multi_ack_detailed agent=git/1.8.4
0041cb34b1c8ca75d478df38c794fc15c5f01cc6377e refs/heads/branch_name
004012577068adf47015001bfa0cff9386d6cdf497ce refs/heads/[...]
003f84249d3bb20930c185c08848c60b71f7b28990d6 refs/heads/master
[a couple more lines like the ones above, then:]
0000
这是已知的SSH / Git / Fabric / Jenkins问题吗?
我做到strace
了,但是我没有录制会议记录。我相信它被卡在了read
。
可能相关的链接:
@slm您有什么具体建议吗?
—
l0b0
对我来说,解决的问题是确保Jenkins以具有GIT仓库正确凭据的用户身份运行
—
MauricioOtta
这
—
derobert
git-upload-pack
就是应该做的,AFAICT。它正在等待您说说git fetch-pack协议,并告诉它要发送哪些内容(尝试在本地存储库上运行它,您将获得相同的输出)。
(假设这个问题不是过时的,因为它是从2013年开始的)
—
derobert
git clone
詹金斯试图获取的主机上是否有全新的(来自github)?我怀疑它不会,并且您可能有路径MTU发现问题,该问题是由防火墙损坏引起的(可能在路径上的任何地方,而不仅仅是您的身边。)
strace -p <pid of hung git daemon>
说它正在阻止?