Jenkins重启后多分支流水线扫描失败无法加载分支如何解决
该报错是因为带斜杠的分支名release/6.0.0.10被URL编码为release%2F6.0.0.10后,Jenkins本地同时存在两个对应分支的缓存记录,导致索引扫描时触发重复创建冲突,直接中断了整个分支扫描流程。
步骤1:停止Jenkins服务
根据你的部署方式执行对应停止命令,常规systemd部署执行:systemctl stop jenkins
如果是docker部署则停止对应的Jenkins容器即可
步骤2:删除冲突的分支缓存目录
进入报错的多分支流水线对应的本地存储路径,你报错中的项目路径为FXZ_Automation/fips_mssql_cartridge_automation_pipeline,默认$JENKINS_HOME路径为/var/lib/jenkins,可根据你的实际部署配置调整,所以对应目录为:cd $JENKINS_HOME/jobs/FXZ_Automation/jobs/fips_mssql_cartridge_automation_pipeline/branches/
找到冲突的两个分支目录release%2F6.0.0.10和release/6.0.0.10,执行删除:rm -rf release%2F6.0.0.10 release/6.0.0.10
如果只存在其中一个目录,删除现有目录即可,操作前可先备份目录到其他路径避免误操作
步骤3:清理旧索引缓存
回到项目根目录,删除旧的索引记录文件:cd $JENKINS_HOME/jobs/FXZ_Automation/jobs/fips_mssql_cartridge_automation_pipeline/rm -rf indexing*rm -rf org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject.xml
步骤4:重启服务并重新扫描
启动Jenkins服务:systemctl start jenkins
登录Jenkins控制台进入对应多分支流水线页面,点击左侧「立即扫描多分支流水线」按钮,扫描完成后所有正常分支即可恢复展示。
- 升级Jenkins的
branch-api插件和Bitbucket插件到最新版本,高版本已经修复了带斜杠分支名的编码识别冲突问题 - 后续分支命名尽量保持规则统一,避免出现仅编码格式不同的同名分支
内容的提问来源于stack exchange,提问作者Sanchit

