You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Jenkins后无法启动:DefaultCrumbIssuer缺失描述符

解决Jenkins升级后持续重启及DefaultCrumbIssuer缺失Descriptor问题

核心问题分析

报错java.lang.AssertionError: class hudson.security.csrf.DefaultCrumbIssuer is missing its descriptor本质是旧版本插件与新版Jenkins核心不兼容,叠加JDK升级后的环境变化,同时Jetty默认Header大小限制触发了重启循环。

分步解决方法

1. 安全模式启动修复插件兼容性

先以安全模式启动Jenkins,仅加载核心插件,跳过第三方插件初始化:

java -jar jenkins.war --safe-mode

进入系统后:

  • 打开「插件管理」→「已安装」页面
  • 筛选标记为「不兼容」的插件,优先卸载或更新CSRF相关插件(如csrf-protection)
  • 更新所有核心插件至最新兼容版本,完成后重启Jenkins

2. 调整Jetty Header缓冲区大小

日志中Header is too large 8193>8192是Jetty默认8KB Header限制导致的,会打断初始化流程。修改启动参数增大缓冲区:

java -Dhudson.headerBufferSize=16384 -jar jenkins.war

可根据实际情况调整为更大值(如32768)

3. 清理残留的旧配置

检查Jenkins主目录(默认~/.jenkins)下的config.xml,找到并删除以下旧配置段:

<crumbIssuer class="hudson.security.csrf.DefaultCrumbIssuer"/>

保存后重启Jenkins,系统会自动生成新版本兼容的CrumbIssuer配置。

4. 验证JDK环境配置

确保Jenkins使用正确的OpenJDK 17:

  • 执行java -version确认输出为OpenJDK 17.x.x
  • 若启动时仍调用旧JDK,需明确指定JDK路径启动:
/path/to/openjdk-17/bin/java -jar jenkins.war

后续预防建议

  • 跨大版本升级Jenkins前,先将所有插件更新至旧版本兼容的最新版
  • 升级前备份Jenkins主目录(~/.jenkins),避免配置丢失
  • 优先通过Ubuntu官方包管理(apt)升级,而非直接替换war包,减少环境适配问题

内容的提问来源于stack exchange,提问作者PHZ.fi-Pharazon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 01:31:04