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

`currentBuild.result` is not set to `ABORTED` when the build was aborted

    Details

    • Similar Issues:

      Description

      Right now when the build is aborted using the `pipeline-input-step` plugin in a declarative pipeline, the build result is set to `FAILURE` instead of `ABORTED` in the post section. However, the actual result is properly set to `ABORTED` afterwards. This makes it impossible to do conditional code in the post section.

        Attachments

          Issue Links

            Activity

            Hide
            pjohnston Phillip Johnston added a comment -

            (I suspect this issue will continue to be reported when someone else tries to handle `aborted` in a `post` block)

            Show
            pjohnston Phillip Johnston added a comment - (I suspect this issue will continue to be reported when someone else tries to handle `aborted` in a `post` block)
            Hide
            abayer Andrew Bayer added a comment -

            The thing is that ABORTED does work in some contexts, but not others. It's weird.

            Show
            abayer Andrew Bayer added a comment - The thing is that ABORTED does work in some contexts, but not others. It's weird.
            Hide
            pwilcock Peter Wilcock added a comment - - edited

            Andrew Bayer I've observed the following:

            When running parallel steps with fastFail set, the fast-failed aborted build will return FAILURE if the act of aborting a step that was still in progress returns an error code. 

            However if other parallel steps have finished successfully, and the last running step fails, this correctly returns ABORTED in the event of failure.

            Some kind of race condition where if a step fails, fastFail aborts all other steps, and the last error code returned is the status seen by the declarative pipeline, but isn't the one respected by the overall build.status? Hopefully that makes sense. 

            Show
            pwilcock Peter Wilcock added a comment - - edited Andrew Bayer I've observed the following: When running parallel steps with fastFail set, the fast-failed aborted build will return FAILURE if the act of aborting a step that was still in progress  returns an error code.  However if other parallel steps have finished successfully, and the last running step fails, this correctly returns ABORTED in the event of failure. Some kind of race condition where if a step fails, fastFail aborts all other steps, and the last error code returned is the status seen by the declarative pipeline, but isn't the one respected by the overall build.status? Hopefully that makes sense. 
            Hide
            kutzi kutzi added a comment - - edited

            Is there not a reliable way to get from the rawBuild if a build was aborted?
            I cannot image that there's no way - as the builds are eventually - when they are totally finished - always displayed with the right result. 'Only' currentBuild.currentResult is very often giving a different result (FAILURE usually)
            We're using this hack now to get better detection of aborted builds:

            if (currentBuild.rawBuild.getActions(jenkins.model.InterruptedBuildAction.class).isEmpty()) {
               return currentBuild.currentResult
            } else {
              return "ABORTED"
            }
            
            Show
            kutzi kutzi added a comment - - edited Is there not a reliable way to get from the rawBuild if a build was aborted? I cannot image that there's no way - as the builds are eventually - when they are totally finished - always displayed with the right result. 'Only' currentBuild.currentResult is very often giving a different result (FAILURE usually) We're using this hack now to get better detection of aborted builds: if (currentBuild.rawBuild.getActions(jenkins.model.InterruptedBuildAction.class).isEmpty()) { return currentBuild.currentResult } else { return "ABORTED" }
            Hide
            bitwiseman Liam Newman added a comment -

            Bulk closing resolved issues.

            Show
            bitwiseman Liam Newman added a comment - Bulk closing resolved issues.

              People

              • Assignee:
                abayer Andrew Bayer
                Reporter:
                rochdev Roch Devost
              • Votes:
                6 Vote for this issue
                Watchers:
                25 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: