Bug: gitlab sync code sync Upstream master to jh main-jh
问题描述
Jihu GitLab 设置了 repo mirror, 定时从 Upstream 同步 master
分支.
当 code sync scheduled pipeline 定时从 master
向 main-jh
merge 代码的时候, 遇到了异常:
In Gemfile:
kubeclient was resolved to 4.9.4.pre.gitlab1, which depends on
http was resolved to 5.1.1, which depends on
llhttp-ffi
失败的 pipeline 样例: https://jihulab.com/gitlab-cn/code-sync/-/jobs/5895779
成功的 pipeline 样例: https://jihulab.com/gitlab-cn/code-sync/-/jobs/5886248
问题的引入
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107171
GitLab 使用了 Gem kubeclient
, 它的 http
Gem 跟其他的 Gem 有版本冲突.
为了解决 http
Gem 的版本冲突, Upstream 把 kubeclient
的代码保存到了 GitLab repo 的 vendor
目录下, 并且修改了其依赖的版本限制:
从 spec.add_dependency 'http', '>= 3.0', '< 5.0'
改为了 spec.add_dependency 'http', '>= 3.0', '< 6.0'
.
- https://gitlab.com/gitlab-org/gitlab/-/blob/master/vendor/gems/kubeclient/kubeclient.gemspec
- https://github.com/ManageIQ/kubeclient/blob/v4.9.3/kubeclient.gemspec
问题的解决
清除 code sync 的 cache