-
Bug
-
Resolution: Unresolved
-
Blocker
We have a declarative pipeline (groovy file) which is used by several projects to perform the deployment. As of uprading to Jenkins LTS 2.150.1 some of the jobs are failing, where others don't. Interestingly the pipeline itself runs on master.
Here a simplified pipeline:
#!groovy import groovy.transform.Field @Field PipelineUtil //PipelineUtil=library(identifier: 'pipeline-helper@master').ch.swisscard.jenkins.pipeline.util.PipelineUtil PipelineUtil=library(identifier: 'pipeline-helper@master', retriever: modernSCM( [$class: 'GitSCMSource', remote: 'https://scm.sc.intra/scm/octopus/pipeline-helper.git', credentialsId: 'bitbucket.service.user' ])).ch.swisscard.jenkins.pipeline.util.PipelineUtillibrary identifier: 'octopus-pipeline-core@master', retriever: modernSCM( [$class: 'GitSCMSource', remote: 'https://scm.sc.intra/scm/octopus/octopus-pipeline-core.git', credentialsId: 'bitbucket.service.user' ])import hudson.AbortException import hudson.model.ChoiceParameterDefinition import org.apache.commons.lang3.exception.ExceptionUtils import org.jenkinsci.plugins.workflow.support.steps.build.RunWrapperpipeline { agent { label "master" } options { /* - daysToKeepStr: history is only kept up to this days. - numToKeepStr: only this number of build logs are kept. - artifactDaysToKeepStr: artifacts are only kept up to this days. - artifactNumToKeepStr: only this number of builds have their artifacts kept. */ buildDiscarder(logRotator(daysToKeepStr: '365')) disableConcurrentBuilds() timestamps() } parameters { booleanParam(defaultValue: false, description: 'Runs the pipeline in dry run (aka dummy) w/o actually deploying or automatic workorder creation', name: 'dryRun') } stages { stage('Deployment') { steps { script { .... this.deploy(currentStage, currentNode, currentJob, solution, tagPrefix, selectedTag, currentTag, recipient, sender, prdOperators, gitUrl, true) if (currentBuild.result.equals('UNSTABLE')) { return } } } } stage('Cleanup') { steps{ script { dbInsertBuildEnd(currentBuild, "SUCCESS") PipelineUtil.setBuildDescription(currentBuild, 'Deployment Ended') } } } } }
The pipeline `deploy` is always successful, but - if we encounter the error - we get the following log output but never reach the stage "Cleanup"
[Pipeline] // stage [Pipeline] } [Pipeline] // script [Pipeline] } [Pipeline] // stage [Pipeline] } [Pipeline] // timestamps [Pipeline] } [Pipeline] // withEnv [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.evaluateStage() is applicable for argument types: (org.jenkinsci.plugins.pipeline.modeldefinition.model.Root, org.jenkinsci.plugins.pipeline.modeldefinition.model.Agent, org.jenkinsci.plugins.pipeline.modeldefinition.model.Stage, null) values: [org.jenkinsci.plugins.pipeline.modeldefinition.model.Root(org.jenkinsci.plugins.pipeline.modeldefinition.model.Agent(null), org.jenkinsci.plugins.pipeline.modeldefinition.model.Stages([org.jenkinsci.plugins.pipeline.modeldefinition.model.Stage(Deployment, null, null, null, null, null, org.jenkinsci.plugins.pipeline.modeldefinition.model.StepsBlock(org.jenkinsci.plugins.workflow.cps.CpsClosure2@379705ac), null, null, null, false, null, null), org.jenkinsci.plugins.pipeline.modeldefinition.model.Stage(Cleanup, null, null, null, null, null, org.jenkinsci.plugins.pipeline.modeldefinition.model.StepsBlock(org.jenkinsci.plugins.workflow.cps.CpsClosure2@2f9438c9), null, null, null, false, null, null)]), null, null, null, org.jenkinsci.plugins.pipeline.modeldefinition.model.Options([], [:], [:]), null, org.jenkinsci.plugins.pipeline.modeldefinition.model.Parameters([hudson.model.BooleanParameterDefinition@5e540782]), null, b74bfec5-972b-4b40-b872-4cd559b3d11d), ...] Possible solutions: evaluateStage(org.jenkinsci.plugins.pipeline.modeldefinition.model.Root, org.jenkinsci.plugins.pipeline.modeldefinition.model.Agent, org.jenkinsci.plugins.pipeline.modeldefinition.model.Stage, java.lang.Throwable, org.jenkinsci.plugins.pipeline.modeldefinition.model.Stage, org.jenkinsci.plugins.pipeline.modeldefinition.model.SkippedStageReason) 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:19) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.call(jar:file:/D:/data/jenkins_home/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:76) at com.cloudbees.groovy.cps.CpsDefaultGroovyMethods.each(CpsDefaultGroovyMethods:2030) at com.cloudbees.groovy.cps.CpsDefaultGroovyMethods.each(CpsDefaultGroovyMethods:2015) at com.cloudbees.groovy.cps.CpsDefaultGroovyMethods.each(CpsDefaultGroovyMethods:2056) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.call(jar:file:/D:/data/jenkins_home/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:74) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.toolsBlock(jar:file:/D:/data/jenkins_home/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:455) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.toolsBlock(jar:file:/D:/data/jenkins_home/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:454) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.call(jar:file:/D:/data/jenkins_home/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:73) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.recursiveWrappers(jar:file:/D:/data/jenkins_home/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:530) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.recursiveWrappers(jar:file:/D:/data/jenkins_home/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:529) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.recursiveWrappers(jar:file:/D:/data/jenkins_home/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:545) 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.GeneratedMethodAccessor809.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:108) 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) Finished: FAILURE
I'm guessing, based on the error message and the line numbers in the stacktrace, that you also upgraded pipeline-model-definition (which is named "Pipeline: Declarative" on the Manage Plugins page) from 1.2.7 or earlier to 1.3.4.1 (since that's the latest release) - I'd expect to see errors like this on upgrades from 1.2.x to 1.3.x for running Pipelines, but not for any Pipeline runs you kick off after upgrading and restarting. Does that fit with what you're seeing?