詹金斯管道升级后失败(SandboxTransformer.forbidIfFinalizer)

时间:2019-08-14 13:30:20

标签: jenkins jenkins-pipeline

最近将我们的Jenkins安装(从2.142升级到2.187,IIRC)进行了升级,但是在升级之后,所有管道(即使是简单的管道)也会不断失败。

否则,系统将不会发出警报-一切看起来都正常运行。但是升级之后,每个管道都将获取Jenkinsfile,并失败:

java.lang.NoSuchMethodError: org.kohsuke.groovy.sandbox.SandboxTransformer.forbidIfFinalizer(Lorg/codehaus/groovy/ast/MethodNode;)V
at com.cloudbees.groovy.cps.SandboxCpsTransformer.visitMethod(SandboxCpsTransformer.java:72)
at com.cloudbees.groovy.cps.CpsTransformer.call(CpsTransformer.java:132)
at com.cloudbees.groovy.cps.SandboxCpsTransformer.call(SandboxCpsTransformer.java:29)
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1065)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:142)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:127)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:561)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:522)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:320)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)

任何人都曾经见过此问题,并且知道如何解决它?

编辑(即使基本的hello world管道脚本失败,也不是脚本)。

已更新至v2.189,所有插件均已更新至最新版本,并且仍然失败。

1 个答案:

答案 0 :(得分:0)

如上所述,问题出在脚本安全插件上。通过稍微调整配置和设置来解决此问题。怀疑该问题是由于先前的安全性强化调整与新插件规则的配合不好所致。