-
Bug
-
Resolution: Fixed
-
Major
workflow-api plugin version 2.6.
For the given pipeline script, secondLevelNestedBranch1 and secondLevelNestedBranch2 parallel branches are nested inside nestedBranch.
There are missing StandardChunkVisitor.parallelEnd() and StandardChunkVisitor.parallelBranchEnd() events for nestedBranch. This causes computing incorrect DAG and status of individual branches. Blueocean extends StandardChunkVisitor to process events and create it's DAG.
node { stage ('test') { echo ('Testing'); parallel nestedBranch: { echo 'nested Branch' stage('nestedBranchStage') { echo 'running nestedBranchStage' parallel secondLevelNestedBranch1: { echo 'secondLevelNestedBranch1' },secondLevelNestedBranch2: { echo 'secondLevelNestedBranch2' } } }, failFast: false } }
If there are only one parallel branches in nested parallel then no parallelEnd or parallelBranchEnd event is fired. See the script below:
node { stage ('test') { echo ('Testing'); parallel nestedBranch: { echo 'nested Branch' stage('nestedBranchStage') { echo 'running nestedBranchStage' parallel secondLevelNestedBranch1: { echo 'secondLevelNestedBranch1' } } }, failFast: false } }
- blocks
-
JENKINS-39847 Improved visualization for multiple "parallel"s within the same stage block
-
- Open
-
- links to
Looks like, firing of parallel events are broken in general. Below script has two stages, each stage with couple parallels, parallelStart event is not called. The pipeline script below has s2.0 and s2.1 are still running so parallelBranchEnd is not fired, understandable, but I expect parallelStart should have been fired.
I collect branches in parallelStart and associate them with relevant stage, reset states etc. so this breaks association of parallel branches with the stage it belongs to. See https://issues.jenkins-ci.org/browse/JENKINS-39847