Gitlab-error: RPC failed; result=22, HTTP code = 500解决

操做Gitlab进行平常代码推拉的过程当中,忽然遇到如标题所述异常,这篇博客记录这个问题的解决办法html

场景复现

对Gitlab私有仓库进行代码push操做,产生以下异常信息:nginx

Counting objects: 875, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (523/523), done.
Writing objects: 100% (875/875), 42.94 MiB | 9.72 MiB/s, done.
Total 875 (delta 206), reused 2 (delta 0)
error: RPC failed; result=22, HTTP code = 500
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly复制代码

Gitlab官方对此issue的反馈信息:https://gitlab.com/gitlab-org/gitlab-ce/issues/12629git

查看官方issue后,能够发现官方对此问题的解决方式基本是如下两种方案:github

  • 更换CentOS操做系统为Ubuntu
  • 更换Nginx引擎为Tomcat

两种方案操做成本都很昂贵,不可接受redis

问题出现缘由

由于gitlab自己本身封装了nginx、redis等工具,包括这些工具的配置也一并解决,因此在推代码的过程当中,若是一次性提交的commit体积过大,超出max package的限定值,那么可能会产生上述异常app

而绝对不是nginx或者操做系统自己的问题dom

但变动gitlab配置又是一件很是麻烦的事情,因此这里换一种思路:咱们不依赖http协议进行上传,换用ssh协议即可以绕开这个问题ssh

新的解决办法

新的解决办法:变动提交方式为ssh便可工具

具体操做步骤:gitlab

  • 提交public key到Gitlab的帐户下
这一步ssh key的生成和提交能够参考个人这边博客:[GitHub——ssh免密登陆](https://www.liumapp.com/articles/2018/08/26/1535294584243.html)复制代码
  • 变动项目remote地址
在项目路径下使用命令  git remote -v复制代码
若是是以http/https形式上传代码的话,那么地址格式相似于:gitlab  http://${your domain name}/liumapp/${your project name}.git (fetch)复制代码
咱们要作的,就是把它变动为以ssh形式进行上传,要将地址变动为相似:gitlab git@github.com:liumapp/${your project name}.git复制代码
操做命令 git remote set-url gitlab git@${your domain name}:liumapp/${your project name}.git复制代码
顺便一提,上面出现的liumapp请自行替换为本身的gitlab帐号名称复制代码
  • 使用ssh推代码, git push ,问题解决
复制代码
相关文章
相关标签/搜索