Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-73102

Failure to parse Jenkinsfile Node block in pipeline-model-definition

XMLWordPrintable

      We recently had an issue where all of our kubernetes-based builds started failing upon Jenkinsfile execution.

      The builds after the pipeline was checked out but before node schedule/execution could begin:

      Cannot resolve which method to invoke for [class java.lang.String, class org.jenkinsci.plugins.pipeline.modeldefinition.Utils$_getPropertiesToUpdate_closure28] due to overlapping prototypes between:

      groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.util.HashMap#compute.
      Cannot resolve which method to invoke for [class java.lang.String, class org.jenkinsci.plugins.pipeline.modeldefinition.Utils$_getPropertiesToUpdate_closure28] due to overlapping prototypes between:
      	[class java.lang.Object, interface java.util.function.BiFunction]
      	[class java.lang.Object, interface java.util.function.BiFunction]
      	at groovy.lang.MetaClassImpl.doChooseMostSpecificParams(MetaClassImpl.java:3251)
      	at groovy.lang.MetaClassImpl.chooseMostSpecificParams(MetaClassImpl.java:3228)
      	at groovy.lang.MetaClassImpl.chooseMethodInternal(MetaClassImpl.java:3217)
      	at groovy.lang.MetaClassImpl.chooseMethod(MetaClassImpl.java:3160)
      	at groovy.lang.MetaClassImpl.getMethodWithoutCaching(MetaClassImpl.java:1438)
      	at groovy.lang.MetaClassImpl.getMethodWithCaching(MetaClassImpl.java:1301)
      	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1072)
      	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
      	at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46)
      	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:136)
      	at org.jenkinsci.plugins.pipeline.modeldefinition.Utils.getPropertiesToUpdate(Utils.groovy:880)
      	at jdk.internal.reflect.GeneratedMethodAccessor418576.invoke(Unknown Source)
      	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
      	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
      	at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite$StaticMetaMethodSiteNoUnwrapNoCoerce.invoke(StaticMetaMethodSite.java:151)
      	at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.callStatic(StaticMetaMethodSite.java:102)
      	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:217)
      	at org.jenkinsci.plugins.pipeline.modeldefinition.Utils.updateJobProperties(Utils.groovy:598)
      	at org.jenkinsci.plugins.pipeline.modeldefinition.Utils$updateJobProperties$12.call(Unknown Source)
      	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
      	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
      	at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:20)
      	at org.jenkinsci.plugins.workflow.cps.LoggingInvoker.methodCall(LoggingInvoker.java:105)
      	at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.executeProperties(ModelInterpreter.groovy:810)
      	at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.call(ModelInterpreter.groovy:71)
      	at WorkflowScript.run(WorkflowScript:4)
      	at ___cps.transform___(Native Method)
      	at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:90)
      	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:116)
      	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:85)
      	at jdk.internal.reflect.GeneratedMethodAccessor820.invoke(Unknown Source)
      	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
      	at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
      	at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.get(PropertyishBlock.java:75)
      	at com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)
      	at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.fixName(PropertyishBlock.java:65)
      	at jdk.internal.reflect.GeneratedMethodAccessor939.invoke(Unknown Source)
      	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
      	at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
      	at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
      	at com.cloudbees.groovy.cps.Next.step(Next.java:83)
      	at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:152)
      	at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:146)
      	at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:136)
      	at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:275)
      	at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:146)
      	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
      	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:51)
      	at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:187)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:422)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:330)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:294)
      	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:67)
      	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
      	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
      	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
      	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
      	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
      	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
      	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      	at java.base/java.lang.Thread.run(Unknown Source) 

      The pipelines that begun failing had not been changed in anyway prior to this failure.

      A restart of the Jenkins Controller fixed this but we could not find any logs in the Jenkins server side to debug this.

      We're also unsure how this came about - the server in question had been up for a few weeks and no configuration to the server had changed from our observation.

      I'll be happy to add more information and reproduction steps if I could be pointed in the direction of how to dive into this.

      Version info:

      Jenkins:  2.401.3
      Kubernetes: 4007.v633279962016
      Pipeline: Model API(pipeline-model-definition): 2.2144.v077a_d1928a_40 

       

            Unassigned Unassigned
            seakip18 Matthew Ludlum
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: