如何解决为什么 Jenkins job-dsl 插件失败并出现错误:java.io.IOException: Failed to persist config.xml
我有一个 Jenkins Job DSL 工作,它在大约 1 月之前运行良好(它不经常使用)。上周,作业失败并显示错误消息 ERROR: java.io.IOException: Failed to persist config.xml
(没有堆栈跟踪,只有该消息)。自 1 月上次成功执行以来,该作业没有发生任何变化。
[...]
13:06:22 Processing provided DSL script
13:06:22 New run name is '#15 (Branch_B20_2_x)'
13:06:22 ERROR: java.io.IOException: Failed to persist config.xml
13:06:22 [WS-CLEANUP] Deleting project workspace...
13:06:22 [WS-CLEANUP] Deferred wipeout is used...
13:06:22 [WS-CLEANUP] done
13:06:22 Finished: FAILURE
我认为在 1 月和 noew 之间,可能某些插件已更新,而 DSL 脚本现在是错误的,所以我将 DSL 脚本更改为我能想象到的最简单的脚本(示例来自 job-dsl 插件页面):
>job('example') {
steps {
shell('echo Hello World!')
}
}
但作业仍然失败并出现完全相同的错误。 我检查了詹金斯日志,但没有什么可看的。 我在 docker swarm 容器中运行 jenkins,每个作业都使用 docker-swarm-plugin 在自己的构建代理容器中执行(也没有改变,在一月份工作)。 docker deamon 日志也没有显示错误。
jenkins 工作区的文件系统也未满,构建代理容器中的用户对 taht 文件系统具有写入权限。 当我将一个空的 tmpfs 挂载到工作区时,它甚至不起作用。
有没有人知道哪里出了问题,或者至少提示了在哪里继续搜索该错误?
- Jenkins 版本:2.281
- job-dsl 插件版本:1.77
- Docker 版本:20.10.4
解决方法
问题已通过将 jenkins 更新到 2.289 解决
之前的版本组合似乎存在一些问题。如果接下来的一些更新改变了什么,我会及时通知你。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。