Jenkins之发布报错“error: RPC failed; curl 18 transfer closed with outstanding read data remaining”

报错信息:

error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

       at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2016)
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1735)
       ... ...

  本来Jenkins都是正常的,但是突然构建一个job的时候出现了此报错,然后Jenkins上所有的job构建都不成功,同样报这种错误。在网上查找一些资料,最终确认是git的http.postBuffer配置默认值大小的问题,此配置是用来限制git推送大小的,由于代码里有大文件导致拉取代码时postBuffer溢出,所以需要增大http.postBuffer的值。

  解决时遇到的问题:由于git是Jenkins里安装的插件,所以修改git的配置比较麻烦。首先找不到Jenkins的git的配置文件(gitconfig),然后如果在服务器上使用git config命令修改的话,服务器上的git也有root权限安装的。

  解决方法:还是在服务器上使用命令修改,只是执行命令时使用Jenkins用户执行

su - jenkins -c "git config --global http.postBuffer 524288000"

  但是,执行后必须要重启Jenkins,不然不会生效的。随后就能在Jenkins的家目录下面看到配置文件 .gitconfig

猜你喜欢

转载自www.cnblogs.com/chy-op/p/10063315.html