报错现象

报错原因

原因分析1:

如果出现这个问题首先先考虑缓存的问题,因为Jenkins有个workspace概念,有一个缓存概念,因为第一次构建会先从Git上拉取,如果项目跟大的话,时间会很长,如果后面开发提交release分支,这种情况下在执行Jenkins会保留原有的之间代码,从而时间长缩短很少,但是有个问题就是缓存在某种情况下如果已经存在会影响下次编译,一般没事,偶尔出个问题,此时如果是老版Jenkins的话可以参考:https://blog.51cto.com/kusorz/2358348

如果是新版本Jenkins的那就在控制台不好找了,我建议直接去Jenkins-workspace目录清除本次Job相关目录数据再重新执行一下Jenkins job 让其重新从Git上拉去一下,第一次时间比较长,后面就好了。

还有一种网络上Git权限导致,这种方法本人没有试,不适合目前的这套环境!

原因分析2:

目前另一种出现的问题状况是上述报错出现的问题是项目源码文件太大,比如classroom目录源码文件太大,所以会导致Jenkins拉取源码文件会存储GFS上面,然后那Jenkins默认是10分钟,也就是说Jenkins10分钟如果源码文件都没有拉取到GFS本地存储,就会直接中断,然后Jenkins会报上述报错,如果出现这种情况:

排查方案第一:从Jenkins上控制台上Job配置页面设置拉取Git超时时间(如果jenkins的Job是流水线的情况比如Pipline就只能采取第二种排查方案排查网)这是一种解决办法。

第二种排查方案二:将比如dev好的成功的JOb在GFS上面同步到QA的环境.git目录中再次执行Job,即发现问题恢复正常,问题解决!

解决方案

方案一:

目前本人目前公司这套环境属于Gitlab+jenkins+Kubernetes+maven+Nexus+harbor+helm这套环境K8s使用GFS挂载的所以跟之前不太一样,特此记录一下

1、进入GFS挂载的K8s master节点上:10.1.14.121

1. 进入这个目录下:/data/src-web
2. 执行命令:rm -rf /data/src-web/fdev_desktop-apps-48*
3. 执行时间有些长耐心等待!

2、再次回到K8s上Jenkins上面重新直接执行Job

3、测试检查

方案二:

目前此解决方法适用于目前Git过大,超过500M以上的,因为Jenkins拉取存储到GFS上项目目录中,所以Jenkins默认10分钟超时时间,将会JenkinsJob直接中断,所以考虑到目前场景,需要手动将正常别的环境上.git 同步到QA环境目录中,这样再次执行Job就可以了

1、进入GFS挂载的K8s master节点上:10.1.14.121

1. 进入QA出问题的目录下:/data/src-web/data/src-web/qa_classroom-44
2. 删除出问题的环境上的Git目录文件:rm -rf .git/
3. 执行时间有些长耐心等待!
4. 检查一下是否完全删除:ll -a

2、执行同步命令

rsync -avz ../fdev_classroom-37/.git .

后面有个点表示同步到当前目录中,rsync -avz意思是保持源文件原有属性,打印输出文件内容,然后进行压缩!

3、测试检查

ll -a

4、执行完成后直接再次执行出问题的Job即可!

作者:运维老许

出处:https://www.strives.cn/

联系方式:strive120620@163.com

微信公众号:Linux必修之路

声明1:本站部分资源收集自互联网,仅供个人学习交流,如不慎侵犯了您的权益,请联系我,我将尽快处理!

声明2:本文版权归作者,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利!

最后修改:2021 年 10 月 26 日 11 : 53 AM
请献出你的爱心,你的小小心意,是对博主最大的认可与支持!