Details
-
Bug
-
Status: Fixed but Unreleased (View Workflow)
-
Major
-
Resolution: Won't Fix
-
None
-
Jenkins 2.107.3
Server OS: CentOS 7
Build Node OS: Windows / CentOS / Ubuntu
Job Type: Matrix
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
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. |
Component/s | envinject-plugin [ 15893 ] |
Attachment | config.xml [ 42909 ] |
Attachment | node_overview.xlsx [ 43010 ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
Status | In Progress [ 3 ] | Open [ 1 ] |
Resolution | Won't Fix [ 2 ] | |
Status | Open [ 1 ] | Fixed but Unreleased [ 10203 ] |
FYI: I also tried this with version 2.7.0