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

pipeline-model-definition 1.9.0 does not work on Jenkins 2.277 LTS

    XMLWordPrintable

    Details

    • Similar Issues:
    • Released As:
      1.9.1

      Description

      Steps to reproduce

      Install Jenkins 2.277.4 LTS with the default plugin list.
      Create a new Pipeline job with the Hello World sample.
      Run the job.

      Expected results

      The job succeeds.

      Actual results

      The job fails with

      java.lang.NullPointerException
       at org.jenkinsci.plugins.pipeline.modeldefinition.agent.DeclarativeAgentDescriptor.instanceForDescriptor(DeclarativeAgentDescriptor.java:153)
       at org.jenkinsci.plugins.pipeline.modeldefinition.agent.DeclarativeAgentDescriptor$instanceForDescriptor$2.call(Unknown Source)
       at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
       at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
       at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
       at org.jenkinsci.plugins.pipeline.modeldefinition.model.Agent.getDeclarativeAgent(Agent.groovy:93)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:498)
       at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
       at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
       at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)
       at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
       at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:42)
       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.inDeclarativeAgent(ModelInterpreter.groovy:589)
       at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.call(ModelInterpreter.groovy:76)
       at WorkflowScript.run(WorkflowScript:1)
       at ___cps.transform___(Native Method)
       at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:86)
       at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:113)
       at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:83)
       at sun.reflect.GeneratedMethodAccessor113.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$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:185)
       at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:400)
       at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$400(CpsThreadGroup.java:96)
       at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:312)
       at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:276)
       at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:67)
       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
       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 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
      

        Attachments

          Activity

          Hide
          basil Basil Crow added a comment -
          Show
          basil Basil Crow added a comment - Liam Newman FYI
          Hide
          bitwiseman Liam Newman added a comment -

          For some reason, the descriptors for agents are not loaded on 277.x and earlier.
          But at the same time this does not happen on 2.289.x and later, nor does it happen during testing.

          Show
          bitwiseman Liam Newman added a comment - For some reason, the descriptors for agents are not loaded on 277.x and earlier. But at the same time this does not happen on 2.289.x and later, nor does it happen during testing.
          Hide
          jglick Jesse Glick added a comment - - edited

          Debugged this and it seems to be yet more fallout from https://github.com/jenkinsci/lib-annotation-indexer/pull/10: older versions of core bundle an older version of the indexer which looks in META-INF/annotations/org.jenkinsci.Symbol whereas plugins built against newer versions of core write to META-INF/services/annotations/org.jenkinsci.Symbol. Thus SymbolLookup breaks. Not sure what to do about this, it is a mess.

          Show
          jglick Jesse Glick added a comment - - edited Debugged this and it seems to be yet more fallout from https://github.com/jenkinsci/lib-annotation-indexer/pull/10: older versions of core bundle an older version of the indexer which looks in META-INF/annotations/org.jenkinsci.Symbol whereas plugins built against newer versions of core write to META-INF/services/annotations/org.jenkinsci.Symbol . Thus SymbolLookup breaks. Not sure what to do about this, it is a mess.
          Show
          jglick Jesse Glick added a comment - https://github.com/jenkinsci/pipeline-model-definition-plugin/pull/443 to start
          Hide
          jglick Jesse Glick added a comment -

          I think https://github.com/jenkinsci/plugin-pom/pull/424 is to blame. Should not have overridden the version of annotation-indexer.

          Show
          jglick Jesse Glick added a comment - I think https://github.com/jenkinsci/plugin-pom/pull/424 is to blame. Should not have overridden the version of annotation-indexer .
          Hide
          jglick Jesse Glick added a comment -

          Unfortunately this does not look trivial to solve. We have to stop overriding the version of annotation-indexer from core, so that older core versions can look up indices. Yet if we do so, as seen in the beta-fail IT, access-modifier-checker stops working, because it is pinned to a version of annotation-indexer. I can either make the IT require a newer version of Jenkins—meaning the checker only functions against pairs of plugins using a new core baseline—or improve the checker to accept old indices, which requires an API change in the indexer that will need to be released.

          Show
          jglick Jesse Glick added a comment - Unfortunately this does not look trivial to solve. We have to stop overriding the version of annotation-indexer from core, so that older core versions can look up indices. Yet if we do so, as seen in the beta-fail IT, access-modifier-checker stops working, because it is pinned to a version of annotation-indexer . I can either make the IT require a newer version of Jenkins—meaning the checker only functions against pairs of plugins using a new core baseline—or improve the checker to accept old indices, which requires an API change in the indexer that will need to be released.
          Hide
          jglick Jesse Glick added a comment -

          https://github.com/jenkinsci/plugin-pom/pull/426 as a hotfix, to be released and then consumed by any plugin which had been released using plugin-pom 4.20 or 4.21, such as pipeline-model-definition.

          Show
          jglick Jesse Glick added a comment - https://github.com/jenkinsci/plugin-pom/pull/426 as a hotfix, to be released and then consumed by any plugin which had been released using plugin-pom 4.20 or 4.21, such as pipeline-model-definition .
          Show
          jglick Jesse Glick added a comment - next https://github.com/jenkinsci/pipeline-model-definition-plugin/pull/444
          Show
          jglick Jesse Glick added a comment - https://github.com/jenkinsci/lib-access-modifier/pull/53
          Show
          jglick Jesse Glick added a comment - https://github.com/jenkinsci/plugin-pom/pull/427
          Hide
          strangelookingnerd Daniel Krämer added a comment -

          Not sure if this is the right place but here goes nothing:

          Latest changes to the lib-access-modifier and plugin-pom break the build for generated classes by the localizer. Am I missing something?

          [INFO] --- access-modifier-checker:1.23:enforce (default-enforce) @ custom-folder-icon ---
          [ERROR] jenkins/plugins/foldericon/CustomFolderIcon$DescriptorImpl:102 jenkins/plugins/foldericon/Messages must not be used
          [ERROR] jenkins/plugins/foldericon/CustomFolderIcon$DescriptorImpl:129 jenkins/plugins/foldericon/Messages must not be used
          [ERROR] jenkins/plugins/foldericon/CustomFolderIcon$DescriptorImpl:134 jenkins/plugins/foldericon/Messages must not be used
          [ERROR] jenkins/plugins/foldericon/CustomFolderIcon:79 jenkins/plugins/foldericon/Messages must not be used
          

          https://github.com/jenkinsci/custom-folder-icon-plugin/pull/27

          Show
          strangelookingnerd Daniel Krämer added a comment - Not sure if this is the right place but here goes nothing: Latest changes to the lib-access-modifier and plugin-pom break the build for generated classes by the localizer. Am I missing something? [INFO] --- access-modifier-checker:1.23:enforce ( default -enforce) @ custom-folder-icon --- [ERROR] jenkins/plugins/foldericon/CustomFolderIcon$DescriptorImpl:102 jenkins/plugins/foldericon/Messages must not be used [ERROR] jenkins/plugins/foldericon/CustomFolderIcon$DescriptorImpl:129 jenkins/plugins/foldericon/Messages must not be used [ERROR] jenkins/plugins/foldericon/CustomFolderIcon$DescriptorImpl:134 jenkins/plugins/foldericon/Messages must not be used [ERROR] jenkins/plugins/foldericon/CustomFolderIcon:79 jenkins/plugins/foldericon/Messages must not be used https://github.com/jenkinsci/custom-folder-icon-plugin/pull/27
          Hide
          jglick Jesse Glick added a comment -

          Daniel Krämer yes, sorry for disruption, update your plugin-pom parent again to get the fix.

          Show
          jglick Jesse Glick added a comment - Daniel Krämer yes, sorry for disruption, update your plugin-pom parent again to get the fix.

            People

            Assignee:
            jglick Jesse Glick
            Reporter:
            basil Basil Crow
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: