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

Updated pipeline build step does not work with retry, catchError, or warnError

    XMLWordPrintable

Details

    • workflow-basic-steps 2.19, pipeline-build-step 2.11, workflow-step-api 2.22

    Description

      We just upgraded pipeline-build-step from 2.9 to 2.10. The following no longer retries:

      pipeline {
          agent any
      
          stages {
              stage('bug') {
                  steps {
                      retry(3) {
                          echo 'in the retry loop'
                          //throw new Exception('failing in retry loop') // This runs (when uncommented) several times before the pipeline exits with failure.
                          build(job: 'some/job/that/fails', propagate: true) // This only runs once before the pipeline exits with failure.
                      }
                  }
              }
          }
      }
      

      When the sub-build fails, the retry loop exits immediately and does not retry. This didn't used to happen. When raising an error in another way (e.g. the `throw new Exception`, commented out, in the code above), `retry` works as expected.

      A workaround is to try/catch the `build()` call and, in catch, `throw new Exception(...)`. If the caught exception is directly re-thrown, we see the same behavior where `retry` does not loop.

      Attachments

        Issue Links

          Activity

            People

              dnusbaum Devin Nusbaum
              jonathanb1 Jonathan B
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: