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

Post build script fails, when pre-build script fails.

    Details

    • Type: Bug
    • Status: Fixed but Unreleased (View Workflow)
    • Priority: Major
    • Resolution: Won't Fix
    • Labels:
      None
    • Environment:
      Jenkins 2.107.3
      Server OS: CentOS 7
      Build Node OS: Windows / CentOS / Ubuntu
      Job Type: Matrix
    • Similar Issues:

      Description

      In all our jobs, we have a pre-build section (part of which is mounting a drive), a build section, and a post-build section (part of which is umounting the drive, mounted from prebuild).

      Any time the pre-build section fails - for any reason, the post build section also fails.

      Simple build log from a job I created to reproduce this:

      [EnvInject] - Loading node environment variables.
      [EnvInject] - Preparing an environment for the build.
      [EnvInject] - Could not resolve custom child workspace, reverting to default location: f95dd186
      [EnvInject] - Keeping Jenkins system variables.
      [EnvInject] - Keeping Jenkins build variables.
      [EnvInject] - Executing and processing the following script content: 
      #!bash
      set +v
      echo "Running pre-build..."
      echo "Pretending to do things, and stuff..."
      sleep 10
      if [ "${NODE_NAME}" = "matrix-parent-node" ]
      then
      echo "Setting exit code to 0"
      exit 0
      else
      echo "Setting exit code to 100"
      exit 100
      fi
      
      [/jenkins] $ bash /tmp/jenkins3631444041177859652.sh
      Running pre-build...
      Pretending to do things, and stuff...
      Setting exit code to 100
      [EnvInject] - Script executed. The exit code is 100.
      [EnvInject] - Fail the build.
      ERROR: Build step failed with exception
      java.lang.NullPointerException
      	at org.jenkinsci.plugins.postbuildscript.processor.Processor.<init>(Processor.java:50)
      	at org.jenkinsci.plugins.postbuildscript.processor.ProcessorFactory.createDefaultProcessor(ProcessorFactory.java:24)
      	at org.jenkinsci.plugins.postbuildscript.processor.ProcessorFactory.createMatrixProcessor(ProcessorFactory.java:35)
      	at org.jenkinsci.plugins.postbuildscript.MatrixPostBuildScript.perform(MatrixPostBuildScript.java:68)
      	at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690)
      	at hudson.model.Build$BuildExecution.post2(Build.java:186)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635)
      	at hudson.model.Run.execute(Run.java:1752)
      	at hudson.matrix.MatrixRun.run(MatrixRun.java:146)
      	at hudson.model.ResourceController.execute(ResourceController.java:97)
      	at hudson.model.Executor.run(Executor.java:429)
      Build step 'Execute Scripts on Matrix' marked build as failure
      Collecting metadata...
      Metadata collection done.
      Finished: FAILURE

      In our post-build actions, we have a step Execute Scripts on Matrix, that is supposed to run regardless of the build result (success, unstable, failure, not-built, and aborted, are all selected).

      It is also supposed to run on both the master and slave. The "Matrix Target" setting in the plugin is set to both.

       

        Attachments

          Activity

          skhushalani Sagar Khushalani created issue -
          skhushalani Sagar Khushalani made changes -
          Field Original Value New Value
          Description In all our jobs, we have a pre-build section (part of which is mounting a drive), a build section, and a post-build section (part of which is umounting the drive, mounted from prebuild).

          Any time the pre-build section fails - for any reason, the post build section also fails.
          {code:java}
          [EnvInject] - Loading node environment variables.
          [EnvInject] - Preparing an environment for the build.
          [EnvInject] - Could not resolve custom child workspace, reverting to default location: f95dd186
          [EnvInject] - Keeping Jenkins system variables.
          [EnvInject] - Keeping Jenkins build variables.
          [EnvInject] - Executing and processing the following script content:
          #!bash
          set +v
          echo "Running pre-build..."
          echo "Pretending to do things, and stuff..."
          sleep 10
          if [ "${NODE_NAME}" = "matrix-parent-node" ]
          then
          echo "Setting exit code to 0"
          exit 0
          else
          echo "Setting exit code to 100"
          exit 100
          fi

          [/jenkins] $ bash /tmp/jenkins3631444041177859652.sh
          Running pre-build...
          Pretending to do things, and stuff...
          Setting exit code to 100
          [EnvInject] - Script executed. The exit code is 100.
          [EnvInject] - Fail the build.
          ERROR: Build step failed with exception
          java.lang.NullPointerException
          at org.jenkinsci.plugins.postbuildscript.processor.Processor.<init>(Processor.java:50)
          at org.jenkinsci.plugins.postbuildscript.processor.ProcessorFactory.createDefaultProcessor(ProcessorFactory.java:24)
          at org.jenkinsci.plugins.postbuildscript.processor.ProcessorFactory.createMatrixProcessor(ProcessorFactory.java:35)
          at org.jenkinsci.plugins.postbuildscript.MatrixPostBuildScript.perform(MatrixPostBuildScript.java:68)
          at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
          at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744)
          at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690)
          at hudson.model.Build$BuildExecution.post2(Build.java:186)
          at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635)
          at hudson.model.Run.execute(Run.java:1752)
          at hudson.matrix.MatrixRun.run(MatrixRun.java:146)
          at hudson.model.ResourceController.execute(ResourceController.java:97)
          at hudson.model.Executor.run(Executor.java:429)
          Build step 'Execute Scripts on Matrix' marked build as failure
          Collecting metadata...
          Metadata collection done.
          Finished: FAILURE{code}
          In our post-build actions, we have a step {{Execute Scripts on Matrix}}, that is supposed to run regardless of the build result (success, unstable, failure, not-built, and aborted, are all selected).

          It is also supposed to run on both the master and slave. The "Matrix Target" setting in the plugin is set to both.

           
          In all our jobs, we have a pre-build section (part of which is mounting a drive), a build section, and a post-build section (part of which is umounting the drive, mounted from prebuild).

          Any time the pre-build section fails - for any reason, the post build section also fails.

          Simple build log from a job I created to reproduce this:
          {code:java}
          [EnvInject] - Loading node environment variables.
          [EnvInject] - Preparing an environment for the build.
          [EnvInject] - Could not resolve custom child workspace, reverting to default location: f95dd186
          [EnvInject] - Keeping Jenkins system variables.
          [EnvInject] - Keeping Jenkins build variables.
          [EnvInject] - Executing and processing the following script content:
          #!bash
          set +v
          echo "Running pre-build..."
          echo "Pretending to do things, and stuff..."
          sleep 10
          if [ "${NODE_NAME}" = "matrix-parent-node" ]
          then
          echo "Setting exit code to 0"
          exit 0
          else
          echo "Setting exit code to 100"
          exit 100
          fi

          [/jenkins] $ bash /tmp/jenkins3631444041177859652.sh
          Running pre-build...
          Pretending to do things, and stuff...
          Setting exit code to 100
          [EnvInject] - Script executed. The exit code is 100.
          [EnvInject] - Fail the build.
          ERROR: Build step failed with exception
          java.lang.NullPointerException
          at org.jenkinsci.plugins.postbuildscript.processor.Processor.<init>(Processor.java:50)
          at org.jenkinsci.plugins.postbuildscript.processor.ProcessorFactory.createDefaultProcessor(ProcessorFactory.java:24)
          at org.jenkinsci.plugins.postbuildscript.processor.ProcessorFactory.createMatrixProcessor(ProcessorFactory.java:35)
          at org.jenkinsci.plugins.postbuildscript.MatrixPostBuildScript.perform(MatrixPostBuildScript.java:68)
          at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
          at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744)
          at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690)
          at hudson.model.Build$BuildExecution.post2(Build.java:186)
          at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635)
          at hudson.model.Run.execute(Run.java:1752)
          at hudson.matrix.MatrixRun.run(MatrixRun.java:146)
          at hudson.model.ResourceController.execute(ResourceController.java:97)
          at hudson.model.Executor.run(Executor.java:429)
          Build step 'Execute Scripts on Matrix' marked build as failure
          Collecting metadata...
          Metadata collection done.
          Finished: FAILURE{code}
          In our post-build actions, we have a step {{Execute Scripts on Matrix}}, that is supposed to run regardless of the build result (success, unstable, failure, not-built, and aborted, are all selected).

          It is also supposed to run on both the master and slave. The "Matrix Target" setting in the plugin is set to both.

           
          skhushalani Sagar Khushalani made changes -
          Component/s envinject-plugin [ 15893 ]
          skhushalani Sagar Khushalani made changes -
          Attachment config.xml [ 42909 ]
          skhushalani Sagar Khushalani made changes -
          Attachment node_overview.xlsx [ 43010 ]
          dheid Daniel Heid made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          dheid Daniel Heid made changes -
          Status In Progress [ 3 ] Open [ 1 ]
          dheid Daniel Heid made changes -
          Status Open [ 1 ] Fixed but Unreleased [ 10203 ]
          Resolution Won't Fix [ 2 ]

            People

            • Assignee:
              dheid Daniel Heid
              Reporter:
              skhushalani Sagar Khushalani
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: