-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
Jenkins Version 2.150.3
PostBuild steps are failing, below is the exception
hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.executePostBuild() is applicable for argument types: (org.jenkinsci.plugins.pipeline.modeldefinition.model.Root) values: [org.jenkinsci.plugins.pipeline.modeldefinition.model.Root(org.jenkinsci.plugins.pipeline.modeldefinition.model.Agent(org.jenkinsci.plugins.workflow.cps.CpsClosure2@3b11b3b5), org.jenkinsci.plugins.pipeline.modeldefinition.model.Stages([org.jenkinsci.plugins.pipeline.modeldefinition.model.Stage(setup to get roles, null, null, org.jenkinsci.plugins.pipeline.modeldefinition.model.StageConditionals(org.jenkinsci.plugins.workflow.cps.CpsClosure2@fbcc393, false, false), null, null, org.jenkinsci.plugins.pipeline.modeldefinition.model.StepsBlock(org.jenkinsci.plugins.workflow.cps.CpsClosure2@2fedc262), null, [], null, false, null, null), org.jenkinsci.plugins.pipeline.modeldefinition.model.Stage(Update Jenkins, null, null, null, null, null, org.jenkinsci.plugins.pipeline.modeldefinition.model.StepsBlock(org.jenkinsci.plugins.workflow.cps.CpsClosure2@500f74dc), null, [], null, false, null, null)]), org.jenkinsci.plugins.pipeline.modeldefinition.model.MappedClosure([always:org.jenkinsci.plugins.pipeline.modeldefinition.model.StepsBlock(org.jenkinsci.plugins.workflow.cps.CpsClosure2@6347cd3e), success:org.jenkinsci.plugins.pipeline.modeldefinition.model.StepsBlock(org.jenkinsci.plugins.workflow.cps.CpsClosure2@60fe6be1), failure:org.jenkinsci.plugins.pipeline.modeldefinition.model.StepsBlock(org.jenkinsci.plugins.workflow.cps.CpsClosure2@60a4a19c)]), org.jenkinsci.plugins.pipeline.modeldefinition.model.Environment@6975b4fc, null, org.jenkinsci.plugins.pipeline.modeldefinition.model.Options([], [:], [:]), null, null, null, c05145a5-7b22-4725-8552-40908c45b6c8)]
Possible solutions: executePostBuild(org.jenkinsci.plugins.pipeline.modeldefinition.model.Root, java.lang.Throwable)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:54)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:20)
at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.call(jar:file:/var/lib/jenkins/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:85)
at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.toolsBlock(jar:file:/var/lib/jenkins/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:563)
at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.toolsBlock(jar:file:/var/lib/jenkins/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:562)
at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.call(jar:file:/var/lib/jenkins/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:79)
at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.recursiveWrappers(jar:file:/var/lib/jenkins/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:646)
at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.recursiveWrappers(jar:file:/var/lib/jenkins/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:645)
at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.recursiveWrappers(jar:file:/var/lib/jenkins/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:661)
at __cps.transform__(Native Method)
at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82)
at sun.reflect.GeneratedMethodAccessor150.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
at com.cloudbees.groovy.cps.impl.LocalVariableBlock$LocalVariable.get(LocalVariableBlock.java:39)
at com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)
at com.cloudbees.groovy.cps.impl.LocalVariableBlock.evalLValue(LocalVariableBlock.java:28)
at com.cloudbees.groovy.cps.LValueBlock$BlockImpl.eval(LValueBlock.java:55)
at com.cloudbees.groovy.cps.LValueBlock.eval(LValueBlock.java:16)
at com.cloudbees.groovy.cps.Next.step(Next.java:83)
at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174)
at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:129)
at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:268)
at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$101(SandboxContinuable.java:34)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.lambda$run0$0(SandboxContinuable.java:59)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:121)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:58)
at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:182)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:332)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$200(CpsThreadGroup.java:83)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:244)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:232)
at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:131)
at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
POST BUILD pipeline configuration
post{
always{
println "all tasks are completed, collecting environment variables to ${WORKSPACE}/${BUILD_TAG}.log"
sh 'printenv >> $WORKSPACE/$BUILD_TAG.log'
println "archiving all logs and artifacts specified"
archiveArtifacts allowEmptyArchive: true, artifacts: '*/.log', onlyIfSuccessful: false
}
success
failure
{ echo 'send failure email, this may be removed in the future, certainly needs refined' deleteDir() }}
The pipeline model definition plugin changed this method in v1.3.5, so when you update to this (or a later) version of the plugin while having a pipeline build in-flight, this single build will fail once it is resumed when Jenkins was restarted after the update was installed. Subsequent builds will then run on the new plugin code only and succeed.
I understand as well that this is suboptimal (and I wonder if the whole "serialize builds" thing doesn't add more complexity and corner cases to Jenkins than it does good things), but at least the issue is not permanent.