在嘗試解決其他一些問題時,我設法破壞了 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
我找到了這個答案
但是,我仍然可以使用指向它們的直接 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)`
uj5u.com熱心網友回復:
最后設法解決了這兩個問題。
發生了什么?
安裝插件build-monitor-plugin,重新啟動 Jenkins,然后卸載插件的順序使Jenkins 中的一些檔案處于損壞狀態。Jenkins 版本2.263.3無法恢復的狀態,即使它繼續重新創建檔案但每次它再次創建相同的損壞檔案。
損壞的檔案
有兩個檔案損壞了,都被命名為config.xml. 第一個位于 Jenkins 的最頂層目錄中。如果您有以下情況,它應該如下所示environment variables:
<globalNodeProperties>
<hudson.slaves.EnvironmentVariablesNodeProperty>
<envVars serialization="custom">
<unserializable-parents/>
<tree-map>
<default>
<comparator />
</default>
<int>2</int> <!-- This number indicates how many key/value pairs will follow it -->
<string></string>
<string></string>
...
</tree-map>
</envVars>
</hudson.slaves.EnvironmentVariablesNodeProperty>
</globalNodeProperties>
Jenkins中也提出了類似的建議- 問題:hudson.model.Queue$MaintainTask 失敗,但<comparator>那里提到的類的值不起作用。我通過安裝一個單獨的 Jenkins 實體并將新的 config.xml 與舊的進行比較,找出了正確的值。
類似地,另一個config.xml被破壞的檔案夾是沒有正確顯示的檔案夾,正如可以看到的那樣。為此,我創建了另一個檔案夾并將其 config.xml 與損壞的檔案夾進行比較,發現以下兩行缺少<folderViews>:
...
<folderViews>
...
<primaryView>All</primaryView>
<tabBar />
</folderViews>
...
添加這兩行解決了這個問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/408044.html
標籤:
