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

The failed parallel build step should be focused and aborted when failFast

    Details

    • Similar Issues:

      Description

      Scope

      • The aborted parallel branches should be marked as aborted.
      • The failing branch should be marked as failed
      • Ensure that only the failing branch is selected in the UI

      Notes
      Stepping through the code it looks like the aborted branches are marked as Result.ABORTED but this information is not bubbled up from bismuth. Aborted steps in this scenario are always reported as failed.

      Original request
      Using a pipeline job like: 

      pipeline {
          agent any
          stages {
              stage ('parallel with failFast') {
                  steps {
                      parallel(
                        b: { 
                            echo 'died'
                            sh "exit 1"
                        },
                        // make sure this branch takes longer than b
                        a: { sh "sleep 35"},
                        failFast: true
                      )    
                  }
              }        
          }
      }
      

      I would expect the failed step to be focused when entering the build page, instead the aborted branch and log is focused.
      Also the aborted branch(es) should be visually different than the actual failed branch.

      Technically more than one branch could fail before being aborted any any such branch should also be indicated as failed (like today).

      I attached an examples of current and expected behavior of how I wish the build page would look for such a failed build. The aborted job indicator could of course be different, I just want it to stand out from an actual failed job. 

      Fixing this would significantly improve using massively parallel builds.

      Data returned from Blue Ocean REST API

      [
         {
            "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
            "_links":{
               "self":{
                  "_class":"io.jenkins.blueocean.rest.hal.Link",
                  "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/"
               },
               "actions":{
                  "_class":"io.jenkins.blueocean.rest.hal.Link",
                  "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/actions/"
               },
               "steps":{
                  "_class":"io.jenkins.blueocean.rest.hal.Link",
                  "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/steps/"
               }
            },
            "actions":[
      
            ],
            "displayName":"parallel with failFast",
            "durationInMillis":1025,
            "id":"6",
            "input":null,
            "result":"FAILURE",
            "startTime":"2017-04-04T14:44:32.809+1000",
            "state":"FINISHED",
            "causeOfBlockage":null,
            "edges":[
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl",
                  "id":"10"
               },
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl",
                  "id":"9"
               }
            ]
         },
         {
            "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
            "_links":{
               "self":{
                  "_class":"io.jenkins.blueocean.rest.hal.Link",
                  "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/"
               },
               "actions":{
                  "_class":"io.jenkins.blueocean.rest.hal.Link",
                  "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/actions/"
               },
               "steps":{
                  "_class":"io.jenkins.blueocean.rest.hal.Link",
                  "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/steps/"
               }
            },
            "actions":[
      
            ],
            "displayName":"a",
            "durationInMillis":1022,
            "id":"10",
            "input":null,
            "result":"FAILURE",
            "startTime":"2017-04-04T14:44:32.812+1000",
            "state":"FINISHED",
            "causeOfBlockage":null,
            "edges":[
      
            ]
         },
         {
            "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
            "_links":{
               "self":{
                  "_class":"io.jenkins.blueocean.rest.hal.Link",
                  "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/"
               },
               "actions":{
                  "_class":"io.jenkins.blueocean.rest.hal.Link",
                  "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/actions/"
               },
               "steps":{
                  "_class":"io.jenkins.blueocean.rest.hal.Link",
                  "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/steps/"
               }
            },
            "actions":[
      
            ],
            "displayName":"b",
            "durationInMillis":1024,
            "id":"9",
            "input":null,
            "result":"FAILURE",
            "startTime":"2017-04-04T14:44:32.810+1000",
            "state":"FINISHED",
            "causeOfBlockage":null,
            "edges":[
      
            ]
         }
      ]
      

        Attachments

          Issue Links

            Activity

            fkykko Staffan Forsell created issue -
            jamesdumay James Dumay made changes -
            Field Original Value New Value
            Description Using a pipeline job like: 
            {code:java}
            pipeline {
                agent any
                stages {
                    stage ('parallel with failFast') {
                        steps {
                            parallel(
                              b: {
                                  echo 'died'
                                  sh "exit 1"
                              },
                              // make sure this branch takes longer than b
                              a: { sh "sleep 35"},
                              failFast: true
                            )
                        }
                    }
                }
            }
            {code}
            I would expect the failed step to be focused when entering the build page, instead the aborted branch and log is focused.
             Also the aborted branch(es) should be visually different than the actual failed branch.

            Technically more than one branch could fail before being aborted any any such branch should also be indicated as failed (like today).

            I attached an examples of current and expected behavior of how I wish the build page would look for such a failed build. The aborted job indicator could of course be different, I just want it to stand out from an actual failed job. 

            Fixing this would significantly improve using massively parallel builds.

            *Original request*
            Using a pipeline job like: 
            {code:java}
            pipeline {
                agent any
                stages {
                    stage ('parallel with failFast') {
                        steps {
                            parallel(
                              b: {
                                  echo 'died'
                                  sh "exit 1"
                              },
                              // make sure this branch takes longer than b
                              a: { sh "sleep 35"},
                              failFast: true
                            )
                        }
                    }
                }
            }
            {code}
            I would expect the failed step to be focused when entering the build page, instead the aborted branch and log is focused.
             Also the aborted branch(es) should be visually different than the actual failed branch.

            Technically more than one branch could fail before being aborted any any such branch should also be indicated as failed (like today).

            I attached an examples of current and expected behavior of how I wish the build page would look for such a failed build. The aborted job indicator could of course be different, I just want it to stand out from an actual failed job. 

            Fixing this would significantly improve using massively parallel builds.

            *Data returned from REST API*
            {code}
            [
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"parallel with failFast",
                  "durationInMillis":1025,
                  "id":"6",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.809+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[
                     {
                        "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl",
                        "id":"10"
                     },
                     {
                        "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl",
                        "id":"9"
                     }
                  ]
               },
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"a",
                  "durationInMillis":1022,
                  "id":"10",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.812+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[

                  ]
               },
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"b",
                  "durationInMillis":1024,
                  "id":"9",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.810+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[

                  ]
               }
            ]
            {code}
            jamesdumay James Dumay made changes -
            Summary The failed parallel build step should be focused using failFast The failed parallel build step should be focused and aborted when failFast
            jamesdumay James Dumay made changes -
            Description
            *Original request*
            Using a pipeline job like: 
            {code:java}
            pipeline {
                agent any
                stages {
                    stage ('parallel with failFast') {
                        steps {
                            parallel(
                              b: {
                                  echo 'died'
                                  sh "exit 1"
                              },
                              // make sure this branch takes longer than b
                              a: { sh "sleep 35"},
                              failFast: true
                            )
                        }
                    }
                }
            }
            {code}
            I would expect the failed step to be focused when entering the build page, instead the aborted branch and log is focused.
             Also the aborted branch(es) should be visually different than the actual failed branch.

            Technically more than one branch could fail before being aborted any any such branch should also be indicated as failed (like today).

            I attached an examples of current and expected behavior of how I wish the build page would look for such a failed build. The aborted job indicator could of course be different, I just want it to stand out from an actual failed job. 

            Fixing this would significantly improve using massively parallel builds.

            *Data returned from REST API*
            {code}
            [
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"parallel with failFast",
                  "durationInMillis":1025,
                  "id":"6",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.809+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[
                     {
                        "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl",
                        "id":"10"
                     },
                     {
                        "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl",
                        "id":"9"
                     }
                  ]
               },
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"a",
                  "durationInMillis":1022,
                  "id":"10",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.812+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[

                  ]
               },
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"b",
                  "durationInMillis":1024,
                  "id":"9",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.810+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[

                  ]
               }
            ]
            {code}
            *Scope*
            * The aborted parallel branches should be marked as aborted.
            * The failing branch should be marked as failed
            * Ensure that only the failing branch is selected in the UI

            *Notes*
            Stepping through the code it looks like the aborted branches are marked as {{Result.ABORTED}} but this information is not bubbled up from bismuth.

            *Original request*
            Using a pipeline job like: 
            {code:java}
            pipeline {
                agent any
                stages {
                    stage ('parallel with failFast') {
                        steps {
                            parallel(
                              b: {
                                  echo 'died'
                                  sh "exit 1"
                              },
                              // make sure this branch takes longer than b
                              a: { sh "sleep 35"},
                              failFast: true
                            )
                        }
                    }
                }
            }
            {code}
            I would expect the failed step to be focused when entering the build page, instead the aborted branch and log is focused.
             Also the aborted branch(es) should be visually different than the actual failed branch.

            Technically more than one branch could fail before being aborted any any such branch should also be indicated as failed (like today).

            I attached an examples of current and expected behavior of how I wish the build page would look for such a failed build. The aborted job indicator could of course be different, I just want it to stand out from an actual failed job. 

            Fixing this would significantly improve using massively parallel builds.

            *Data returned from REST API*
            {code}
            [
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"parallel with failFast",
                  "durationInMillis":1025,
                  "id":"6",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.809+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[
                     {
                        "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl",
                        "id":"10"
                     },
                     {
                        "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl",
                        "id":"9"
                     }
                  ]
               },
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"a",
                  "durationInMillis":1022,
                  "id":"10",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.812+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[

                  ]
               },
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"b",
                  "durationInMillis":1024,
                  "id":"9",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.810+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[

                  ]
               }
            ]
            {code}
            jamesdumay James Dumay made changes -
            Labels pipeline-improvement
            jamesdumay James Dumay made changes -
            Epic Link JENKINS-35750 [ 171713 ]
            jamesdumay James Dumay made changes -
            Sprint Blue Ocean up next [ 251 ]
            jamesdumay James Dumay made changes -
            Description *Scope*
            * The aborted parallel branches should be marked as aborted.
            * The failing branch should be marked as failed
            * Ensure that only the failing branch is selected in the UI

            *Notes*
            Stepping through the code it looks like the aborted branches are marked as {{Result.ABORTED}} but this information is not bubbled up from bismuth.

            *Original request*
            Using a pipeline job like: 
            {code:java}
            pipeline {
                agent any
                stages {
                    stage ('parallel with failFast') {
                        steps {
                            parallel(
                              b: {
                                  echo 'died'
                                  sh "exit 1"
                              },
                              // make sure this branch takes longer than b
                              a: { sh "sleep 35"},
                              failFast: true
                            )
                        }
                    }
                }
            }
            {code}
            I would expect the failed step to be focused when entering the build page, instead the aborted branch and log is focused.
             Also the aborted branch(es) should be visually different than the actual failed branch.

            Technically more than one branch could fail before being aborted any any such branch should also be indicated as failed (like today).

            I attached an examples of current and expected behavior of how I wish the build page would look for such a failed build. The aborted job indicator could of course be different, I just want it to stand out from an actual failed job. 

            Fixing this would significantly improve using massively parallel builds.

            *Data returned from REST API*
            {code}
            [
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"parallel with failFast",
                  "durationInMillis":1025,
                  "id":"6",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.809+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[
                     {
                        "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl",
                        "id":"10"
                     },
                     {
                        "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl",
                        "id":"9"
                     }
                  ]
               },
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"a",
                  "durationInMillis":1022,
                  "id":"10",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.812+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[

                  ]
               },
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"b",
                  "durationInMillis":1024,
                  "id":"9",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.810+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[

                  ]
               }
            ]
            {code}
            *Scope*
            * The aborted parallel branches should be marked as aborted.
            * The failing branch should be marked as failed
            * Ensure that only the failing branch is selected in the UI

            *Notes*
            Stepping through the code it looks like the aborted branches are marked as {{Result.ABORTED}} but this information is not bubbled up from bismuth. Aborted steps in this scenario are always reported as failed.

            *Original request*
            Using a pipeline job like: 
            {code:java}
            pipeline {
                agent any
                stages {
                    stage ('parallel with failFast') {
                        steps {
                            parallel(
                              b: {
                                  echo 'died'
                                  sh "exit 1"
                              },
                              // make sure this branch takes longer than b
                              a: { sh "sleep 35"},
                              failFast: true
                            )
                        }
                    }
                }
            }
            {code}
            I would expect the failed step to be focused when entering the build page, instead the aborted branch and log is focused.
             Also the aborted branch(es) should be visually different than the actual failed branch.

            Technically more than one branch could fail before being aborted any any such branch should also be indicated as failed (like today).

            I attached an examples of current and expected behavior of how I wish the build page would look for such a failed build. The aborted job indicator could of course be different, I just want it to stand out from an actual failed job. 

            Fixing this would significantly improve using massively parallel builds.

            *Data returned from REST API*
            {code}
            [
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"parallel with failFast",
                  "durationInMillis":1025,
                  "id":"6",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.809+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[
                     {
                        "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl",
                        "id":"10"
                     },
                     {
                        "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl",
                        "id":"9"
                     }
                  ]
               },
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"a",
                  "durationInMillis":1022,
                  "id":"10",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.812+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[

                  ]
               },
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"b",
                  "durationInMillis":1024,
                  "id":"9",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.810+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[

                  ]
               }
            ]
            {code}
            jamesdumay James Dumay made changes -
            Description *Scope*
            * The aborted parallel branches should be marked as aborted.
            * The failing branch should be marked as failed
            * Ensure that only the failing branch is selected in the UI

            *Notes*
            Stepping through the code it looks like the aborted branches are marked as {{Result.ABORTED}} but this information is not bubbled up from bismuth. Aborted steps in this scenario are always reported as failed.

            *Original request*
            Using a pipeline job like: 
            {code:java}
            pipeline {
                agent any
                stages {
                    stage ('parallel with failFast') {
                        steps {
                            parallel(
                              b: {
                                  echo 'died'
                                  sh "exit 1"
                              },
                              // make sure this branch takes longer than b
                              a: { sh "sleep 35"},
                              failFast: true
                            )
                        }
                    }
                }
            }
            {code}
            I would expect the failed step to be focused when entering the build page, instead the aborted branch and log is focused.
             Also the aborted branch(es) should be visually different than the actual failed branch.

            Technically more than one branch could fail before being aborted any any such branch should also be indicated as failed (like today).

            I attached an examples of current and expected behavior of how I wish the build page would look for such a failed build. The aborted job indicator could of course be different, I just want it to stand out from an actual failed job. 

            Fixing this would significantly improve using massively parallel builds.

            *Data returned from REST API*
            {code}
            [
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"parallel with failFast",
                  "durationInMillis":1025,
                  "id":"6",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.809+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[
                     {
                        "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl",
                        "id":"10"
                     },
                     {
                        "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl",
                        "id":"9"
                     }
                  ]
               },
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"a",
                  "durationInMillis":1022,
                  "id":"10",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.812+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[

                  ]
               },
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"b",
                  "durationInMillis":1024,
                  "id":"9",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.810+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[

                  ]
               }
            ]
            {code}
            *Scope*
            * The aborted parallel branches should be marked as aborted.
            * The failing branch should be marked as failed
            * Ensure that only the failing branch is selected in the UI

            *Notes*
            Stepping through the code it looks like the aborted branches are marked as {{Result.ABORTED}} but this information is not bubbled up from bismuth. Aborted steps in this scenario are always reported as failed.

            *Original request*
            Using a pipeline job like: 
            {code:java}
            pipeline {
                agent any
                stages {
                    stage ('parallel with failFast') {
                        steps {
                            parallel(
                              b: {
                                  echo 'died'
                                  sh "exit 1"
                              },
                              // make sure this branch takes longer than b
                              a: { sh "sleep 35"},
                              failFast: true
                            )
                        }
                    }
                }
            }
            {code}
            I would expect the failed step to be focused when entering the build page, instead the aborted branch and log is focused.
             Also the aborted branch(es) should be visually different than the actual failed branch.

            Technically more than one branch could fail before being aborted any any such branch should also be indicated as failed (like today).

            I attached an examples of current and expected behavior of how I wish the build page would look for such a failed build. The aborted job indicator could of course be different, I just want it to stand out from an actual failed job. 

            Fixing this would significantly improve using massively parallel builds.

            *Data returned from Blue Ocean REST API*
            {code}
            [
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/6/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"parallel with failFast",
                  "durationInMillis":1025,
                  "id":"6",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.809+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[
                     {
                        "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl",
                        "id":"10"
                     },
                     {
                        "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl",
                        "id":"9"
                     }
                  ]
               },
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/10/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"a",
                  "durationInMillis":1022,
                  "id":"10",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.812+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[

                  ]
               },
               {
                  "_class":"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl",
                  "_links":{
                     "self":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/"
                     },
                     "actions":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/actions/"
                     },
                     "steps":{
                        "_class":"io.jenkins.blueocean.rest.hal.Link",
                        "href":"/blue/rest/organizations/jenkins/pipelines/JENKINS-43292/runs/1/nodes/9/steps/"
                     }
                  },
                  "actions":[

                  ],
                  "displayName":"b",
                  "durationInMillis":1024,
                  "id":"9",
                  "input":null,
                  "result":"FAILURE",
                  "startTime":"2017-04-04T14:44:32.810+1000",
                  "state":"FINISHED",
                  "causeOfBlockage":null,
                  "edges":[

                  ]
               }
            ]
            {code}
            jamesdumay James Dumay made changes -
            Link This issue relates to JENKINS-39203 [ JENKINS-39203 ]
            jamesdumay James Dumay made changes -
            Sprint Blue Ocean up next [ 251 ] Blue Ocean 1.2 [ 296 ]
            jamesdumay James Dumay made changes -
            Rank Ranked higher
            jamesdumay James Dumay made changes -
            Sprint Blue Ocean 1.2 [ 296 ] Blue Ocean 1.3 [ 311 ]
            jamesdumay James Dumay made changes -
            Epic Link JENKINS-35750 [ 171713 ] JENKINS-43952 [ 181484 ]
            jamesdumay James Dumay made changes -
            Rank Ranked higher
            abayer Andrew Bayer made changes -
            Link This issue is blocked by JENKINS-43995 [ JENKINS-43995 ]
            svanoort Sam Van Oort made changes -
            Component/s pipeline-graph-analysis-plugin [ 21693 ]
            Component/s workflow-api-plugin [ 21711 ]
            Component/s blueocean-plugin [ 21481 ]
            svanoort Sam Van Oort made changes -
            Labels pipeline-improvement bismuth pipeline-improvement
            jamesdumay James Dumay made changes -
            Component/s blueocean-plugin [ 21481 ]
            jamesdumay James Dumay made changes -
            Sprint Blue Ocean 1.4 [ 311 ] Pipeline - July/August [ 371 ]
            jamesdumay James Dumay made changes -
            Rank Ranked lower
            jamesdumay James Dumay made changes -
            Component/s pipeline-graph-analysis-plugin [ 21693 ]
            Component/s workflow-api-plugin [ 21711 ]
            jamesdumay James Dumay made changes -
            Sprint Pipeline - July/August [ 371 ] Blue Ocean 1.3 [ 296 ]
            abayer Andrew Bayer made changes -
            Epic Link JENKINS-43952 [ 181484 ] JENKINS-45818 [ 184028 ]
            jamesdumay James Dumay made changes -
            Epic Link JENKINS-45818 [ 184028 ] JENKINS-43952 [ 181484 ]
            jamesdumay James Dumay made changes -
            Assignee Andrew Bayer [ abayer ]
            jamesdumay James Dumay made changes -
            Sprint Blue Ocean 1.3-beta-2 [ 296 ] Blue Ocean 1.4 [ 311 ]
            jamesdumay James Dumay made changes -
            Rank Ranked lower
            abayer Andrew Bayer made changes -
            Link This issue is duplicated by JENKINS-47087 [ JENKINS-47087 ]
            jamesdumay James Dumay made changes -
            Sprint Blue Ocean 1.5 - candidates [ 311 ]
            jamesdumay James Dumay made changes -
            Rank Ranked higher
            jamesdumay James Dumay made changes -
            Remote Link This issue links to "CloudBees Internal UX-636 (Web Link)" [ 18190 ]
            dnusbaum Devin Nusbaum made changes -
            Assignee Andrew Bayer [ abayer ] Devin Nusbaum [ dnusbaum ]
            dnusbaum Devin Nusbaum made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            dnusbaum Devin Nusbaum made changes -
            Status In Progress [ 3 ] In Review [ 10005 ]
            dnusbaum Devin Nusbaum made changes -
            Remote Link This issue links to "jenkinsci/pipeline-graph-analysis-plugin#24 (Web Link)" [ 22600 ]
            dnusbaum Devin Nusbaum made changes -
            Status In Review [ 10005 ] Fixed but Unreleased [ 10203 ]
            Resolution Fixed [ 1 ]

              People

              • Assignee:
                dnusbaum Devin Nusbaum
                Reporter:
                fkykko Staffan Forsell
              • Votes:
                20 Vote for this issue
                Watchers:
                26 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: