【发布时间】:2020-01-14 08:26:39
【问题描述】:
我在 Jenkins 中通过 HTTP 克隆存储库时遇到问题。只有超过 12 个分支或总共有 18 个分支和标签的存储库才会出现此问题。
运行以下命令:
git clone http://USERNAME:PASSWORD@bitbucket.company.org/scm/key/repo.git
当有 11 个分支或总共 17 个分支和标签时,克隆工作非常好。当它高于该数字时,克隆将失败并出现以下错误:
error: RPC failed; HTTP 500 curl 22 The requested URL returned error: 500
fatal: The remote end hung up unexpectedly
Bitbucket 在日志级别 DEBUG 下运行,我在日志中找不到更多信息。
服务器上的版本:
Bitbucket 服务器 5.14.0 Git 2.19.0
本地版本:
Git 2.17.1
PS:我没有在代理后面运行 Bitbucket。
我检查了 atlassian-bitbucket.log,它确实显示了与存储库克隆相关的错误:
The following was written to stderr:
fatal: the remote end hung up unexpectedly
com.atlassian.utils.process.ProcessException: Non-zero exit code: 1
at com.atlassian.bitbucket.scm.SummarizingProcessHandler.complete(SummarizingProcessHandler.java:47)
...
我尝试设置 postBuffer:
git config --global http.postBuffer 524288000
我尝试使用用户名和密码作为输入进行克隆,但在超过 12 个分支上仍然失败:
git clone http://bitbucket.company.org/scm/key/repo.git
存储库的大小无关紧要,因为我可以克隆具有较少分支的大型存储库。
如果我使用 SSH,它确实有效,但这不是我用例的选项。由于我们每个版本都有一个发布分支,并且标签的数量确实会随着时间的推移而增加,我预计这对其他人来说也是一个问题。
当我尝试在 Jenkins 管道中进行克隆时,我尝试了以下配置来获得不仅仅是浅层克隆的更多内容。
checkout([
$class: 'GitSCM',
branches: scm.branches,
extensions: [
[
$class: 'CloneOption',
honorRefspec: false,
noTags: false,
shallow: false,
]
],
userRemoteConfigs: scm.userRemoteConfigs,
])
我希望它能够克隆存储库,无论分支数量如何。有谁知道为什么会这样?任何帮助都会被极大地接受。
【问题讨论】:
-
不幸的是,我已经尝试过了。在使用 ssh 克隆并重新配置遥控器以使用基本身份验证后,我还尝试推送到仓库,这可行,但 pull/fetch/clone 没有。
-
听起来像是服务器端问题。尝试在服务器端查找相关消息。
-
嗯,我发现的所有错误信息都与我在问题中提出的相同。但是我想知道它是否与它在 HTTP 而不是 HTTPS 上有关?毕竟这是基本的身份验证。
标签: jenkins bitbucket bitbucket-server