小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
问题描述
前段时间遇到一个jenkins 构建失败的问题,详细堆栈如下
FATAL: Invalid id: refs/remotes/origin/origin/test^{commit}
org.eclipse.jgit.errors.InvalidObjectIdException: Invalid id: refs/remotes/origin/origin/test^{commit}
at org.eclipse.jgit.lib.ObjectId.fromHexString(ObjectId.java:246)
at org.eclipse.jgit.lib.ObjectId.fromString(ObjectId.java:234)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.revParse(CliGitAPIImpl.java:869)
at hudson.plugins.git.GitAPI.revParse(GitAPI.java:316)
at hudson.plugins.git.util.DefaultBuildChooser.getHeadRevision(DefaultBuildChooser.java:130)
at hudson.plugins.git.util.DefaultBuildChooser.getCandidateRevisions(DefaultBuildChooser.java:112)
at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:1086)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1193)
at hudson.scm.SCM.checkout(SCM.java:504)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1208)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
at hudson.model.Run.execute(Run.java:1818)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor
大致是说 git 拉取代码失败了,原因是某个objectId不对 但是这job配置的ssh连接没问题而且不止一个job,所有都是这个错误
问题分析
看到这个bug第一反应没见过立马找度娘,结果没有找到。然后又打算去看看jgit源码看看这个报错啥意思,但是很快放弃了因为没这耐心,当时都想重新部署一个jenkins了。
结果在jenkins 系统管理页面看到一大堆的错误
这错误在这页面挺久了,一直没有上心,但是遇到上面错误就打算看看会不会是这里问题,因为上面也说了所有的job中git 拉取都失败了,感觉可能是全局的git有问题
死马当活马医
解决方案
更新 git 相关所有插件
直接去jenkins 插件官网下载包,
然后在jenkins插件管理-高级页面上传
同理
git client插件也要更新
更新jenkins
新版本的包 jenkins 旧版本可能不兼容,所以更新下jenkins 去jenkins 官网下载最新的war包,然后上传到jenkins服务器的war包目录下,替换 最后重启jenkins 即可
写在最后
问题虽然解决但还是有个疑惑,为啥之前都OK,突然那天不能用了😳