【发布时间】:2022-01-06 05:44:20
【问题描述】:
我在尝试解决其他一些问题的同时设法破坏了 Jenkins。现在,每当我运行作业时,它都会立即失败并出现以下错误:
java.lang.NullPointerException
at java.util.TreeMap.putAll(TreeMap.java:313)
at hudson.slaves.EnvironmentVariablesNodeProperty.buildEnvVars(EnvironmentVariablesNodeProperty.java:85)
at hudson.model.Computer.buildEnvironment(Computer.java:1195)
at hudson.model.Job.getEnvironment(Job.java:385)
at hudson.model.Run.getEnvironment(Run.java:2419)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.getEnvironment(WorkflowRun.java:500)
at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:112)
at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:68)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:310)
at hudson.model.ResourceController.execute(ResourceController.java:99)
at hudson.model.Executor.run(Executor.java:432)
Finished: FAILURE
我找到了这个答案Jenkins - Problem: hudson.model.Queue$MaintainTask failed,但它建议重写config.xml 文件。当我这样做并从磁盘重新加载配置时,config.xml 文件被詹金斯覆盖。我已经将 jenkins 升级到了最新的可用版本,并且还更新了大部分插件。我还尝试通过 UI 添加回环境变量,但这样做会引发以下异常:
2022-01-06 17:21:50.894+0000 [id=10] WARNING o.e.j.s.h.ContextHandler$Context#log: Error while serving https://<jenkins-url>:<port>/configSubmit
java.lang.ClassCastException: java.lang.Integer cannot be cast to hudson.model.Describable
at hudson.util.DescribableList.get(DescribableList.java:126)
at hudson.util.DescribableList.rebuild(DescribableList.java:168)
at jenkins.model.GlobalNodePropertiesConfiguration.configure(GlobalNodePropertiesConfiguration.java:25)
at jenkins.model.Jenkins.configureDescriptor(Jenkins.java:3846)
at jenkins.model.Jenkins.doConfigSubmit(Jenkins.java:3810)
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396)
Caused: java.lang.reflect.InvocationTargetException
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:400)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212)
at org.kohsuke.stapler.SelectionInterceptedFunction$Adapter.invoke(SelectionInterceptedFunction.java:36)
这看起来类似于第一个异常,它无法识别 Integer 字段。如何修复此配置?
它是如何开始的
我有几个预定的作业运行得很好。但突然之间,经过数周的成功运行,他们开始无缘无故地失败。但他们仍然跑到某个点。我还安装了一个名为build-monitor-plugin 的插件,但安装后我没有重新启动jenkins。我决定重新启动 jenkins 看看是否能解决问题,但这让我陷入了一系列不同的问题,而且我从来没有弄清楚为什么这些作业在成功运行几周后开始失败。要找出这一点,我必须首先解决 NPE 问题(我在开头描述过)。包含我所有工作的文件夹现在显示损坏的视图:
但是,我仍然可以使用指向它们的直接 URL 访问这些作业。这个文件夹使用build-monitor-plugin 添加了一个视图,我怀疑它在重新启动后搞砸了。所以我卸载了插件,但这并没有修复视图。我还手动删除了与此插件相关的所有文件,但这也无济于事。当我访问该文件夹时,我在日志中看到以下错误:
2022-01-06 05:29:47.232+0000 [id=87] WARNING h.i.i.InstallUncaughtExceptionHandler#handleException: Caught unhandled exception with ID cb5bdf8c-2a97-4360-8f80-95df2c5c719b
org.apache.commons.jelly.JellyTagException: jar:file:/app/jenkins/war/WEB-INF/lib/jenkins-core-2.319.1.jar!/hudson/model/View/index.jelly:42:43: <st:include> org.apache.commons.jelly.JellyTagException: jar:file:/app/jenkins/war/WEB-INF/lib/jenkins-core-2.319.1.jar!/lib/hudson/projectView.jelly:67:24: <d:invokeBody> `java.lang.NullPointerException
at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:726)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:281)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)`
【问题讨论】:
标签: jenkins