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

Cannot get property 'script' on null object

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Labels:
      None
    • Environment:
      Centos 5.10 x86_64, standalone installation
      Jenkins ver. 2.53
      pipeline-model-definition 1.1.2
      workflow-job 2.10
      workflow-cps 2.29
    • Similar Issues:

      Description

      We have the following pipeline definition:

      #!groovy
      
      pipeline {
          agent {
              label 'Solaris'
          }
      
          options {
              buildDiscarder(logRotator(numToKeepStr: '10'))
              disableConcurrentBuilds()
          }
      
          parameters {
              string(name: 'BRANCH', defaultValue: 'master', description: 'Git branch to use for the build.')
              choice(name: 'APPEND_COMMIT_VERSION', choices: 'ON\nOFF', description: 'Append Git commit ID to build version?')
              choice(name: 'DEBUG_SQL', choices: '0\n1\n2', description: 'Level of SQL tracing.\n0 - disabled.')
              choice(name: 'SAP_CONNECTION_POOL_DEBUG', choices: '0\n1', description: 'Level of SAP connection pool tracing.\nWorks only in debug builds.\n0 - disabled.')
              choice(name: 'BUILD_TYPE', choices: 'RelWithDebInfo\nDebug\nRelease', description: 'Build type')
          }
      
          environment {
              BUILD_DIR = 'build'
          }
      
          stages {
              stage('build') {
                  steps {
                      sh '''
                          mkdir -p $BUILD_DIR
      
                          rm -f ${BUILD_DIR}/*.zip
      
                          PATH=${PATH}:/opt/csw/i386-pc-solaris2.10/bin/     # we need objcopy for packaging
      
                          CFLAGS=-m64
                          CXXFLAGS=-m64
                          LDFLAGS=-m64
                          CC=/opt/csw/bin/gcc
                          CXX=/opt/csw/bin/g++
                          export CFLAGS CXXFLAGS LDFLAGS CC CXX
      
                          cmake -GNinja -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DTEST_THREADS_COUNT=2 -DAPPEND_COMMIT_VERSION=${APPEND_COMMIT_VERSION} -DDEBUG_SQL=${DEBUG_SQL} -DSAP_CONNECTION_POOL_DEBUG=${SAP_CONNECTION_POOL_DEBUG} -H. -B${BUILD_DIR}
      
                          cmake --build ${BUILD_DIR} --target package
                      '''
      
                      archive "${BUILD_DIR}/*.zip"
                  }
              }
              stage('unit-test') {
                  steps {
                      sh '''
                          find ${BUILD_DIR}/src/Test -name test_detail.xml | xargs rm -f
      
                          GTEST_OUTPUT=xml cmake --build ${BUILD_DIR} --target check || true
                      '''
      
                      junit "${BUILD_DIR}/src/Test/*/test_detail.xml"
                  }
              }
          }
      }

      It sometimes works and sometimes (most of the time actually) not and we get:

      java.lang.NullPointerException: Cannot get property 'script' on null object
      	at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:60)
      	at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:174)
      	at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:47)
      	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:296)
      	at org.jenkinsci.plugins.pipeline.modeldefinition.parser.Converter.parseFromWorkflowRun(Converter.groovy:207)
      	at org.jenkinsci.plugins.pipeline.modeldefinition.parser.Converter$parseFromWorkflowRun.call(Unknown Source)
      	at org.jenkinsci.plugins.pipeline.modeldefinition.Utils.attachDeclarativeActions(Utils.groovy:214)
      	at org.jenkinsci.plugins.pipeline.modeldefinition.Utils$attachDeclarativeActions$6.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 com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:18)
      	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:66)
      	at WorkflowScript.run(WorkflowScript:3)
      	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.GeneratedMethodAccessor355.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:483)
      	at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
      	at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.get(PropertyishBlock.java:76)
      	at com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)
      	at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.fixName(PropertyishBlock.java:66)
      	at sun.reflect.GeneratedMethodAccessor359.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:483)
      	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:74)
      	at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154)
      	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
      	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:33)
      	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:30)
      	at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108)
      	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:30)
      	at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:165)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:328)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$100(CpsThreadGroup.java:80)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:240)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:228)
      	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:112)
      	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
      	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:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)

      Sometimes we get it to build by restarting the build several times until it goes through but in most cases we have to leave it be.
      This particular build executes on Solaris 10. We use very similar pipelines for our linux and windows builds (actually only build commands differ). The issue is also present there but manifests itself rarely.

        Attachments

          Issue Links

            Activity

            Hide
            jzakrzewski Jakub Zakrzewski added a comment -

            Hi Andrew Bayer, will your fixes be merged into release in the nearest future?

            Show
            jzakrzewski Jakub Zakrzewski added a comment - Hi Andrew Bayer , will your fixes be merged into release in the nearest future?
            Hide
            abayer Andrew Bayer added a comment -

            Huh, forgot about this - will pick it up today.

            Show
            abayer Andrew Bayer added a comment - Huh, forgot about this - will pick it up today.
            Hide
            abayer Andrew Bayer added a comment -
            Show
            abayer Andrew Bayer added a comment - PR up at https://github.com/jenkinsci/pipeline-model-definition-plugin/pull/158 , should get into 1.1.5
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Andrew Bayer
            Path:
            pipeline-model-definition/src/main/groovy/org/jenkinsci/plugins/pipeline/modeldefinition/parser/Converter.groovy
            http://jenkins-ci.org/commit/pipeline-model-definition-plugin/81240a2eeccbd3f08a5dc0b9cfb4519baf54d357
            Log:
            [FIXED JENKINS-43816] Make sure we have a non-null execution.

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Andrew Bayer Path: pipeline-model-definition/src/main/groovy/org/jenkinsci/plugins/pipeline/modeldefinition/parser/Converter.groovy http://jenkins-ci.org/commit/pipeline-model-definition-plugin/81240a2eeccbd3f08a5dc0b9cfb4519baf54d357 Log: [FIXED JENKINS-43816] Make sure we have a non-null execution.
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Andrew Bayer
            Path:
            pipeline-model-definition/src/main/groovy/org/jenkinsci/plugins/pipeline/modeldefinition/parser/Converter.groovy
            http://jenkins-ci.org/commit/pipeline-model-definition-plugin/27b76c3dfeafdffc48ec636863824afe07e1f28d
            Log:
            Merge pull request #158 from abayer/jenkins-43816-fix

            [FIXED JENKINS-43816] Make sure we have a non-null execution.

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Andrew Bayer Path: pipeline-model-definition/src/main/groovy/org/jenkinsci/plugins/pipeline/modeldefinition/parser/Converter.groovy http://jenkins-ci.org/commit/pipeline-model-definition-plugin/27b76c3dfeafdffc48ec636863824afe07e1f28d Log: Merge pull request #158 from abayer/jenkins-43816-fix [FIXED JENKINS-43816] Make sure we have a non-null execution.

              People

              • Assignee:
                abayer Andrew Bayer
                Reporter:
                jzakrzewski Jakub Zakrzewski
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: