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

Older builds allowed to wait for a throttled stage which a newer build is in

      The docs suggest that marking a stage with "concurrency: 1" will allow only the latest build to run, and that if older builds reach such a section, it will stop executing:

      "The stage command lets you mark certain sections of a build as being constrained by limited concurrency.
      Newer builds are always given priority when entering such a throttled stage; older builds will simply exit early if they are preëmpted."

      I instead observed an older build simply waiting until a newer build had finished, and then continuing to run the concurrency: 1 section.
      This is a problem for us this is our deploy stage, and we wish to only deploy the latest code.

          [JENKINS-32829] Older builds allowed to wait for a throttled stage which a newer build is in

          Jesse Glick added a comment -

          The current behavior is as designed. Older builds are canceled if there is a newer build waiting to enter the stage. In other words, if build 1 is in the stage, 2 is waiting to enter, and 3 gets to the same stage statement, 2 will be canceled. If builds reach the stage statement out of order, so build 1 takes a long time to get through earlier stages, and then build 2 enters the stage, 1 will wait for it to exit the stage and then proceed.

          I think what you are looking for is the linear option suggested in JENKINS-27039. I will not mark this a duplicate since the main planned fix there is the eager option, which is for a different purpose.

          Jesse Glick added a comment - The current behavior is as designed. Older builds are canceled if there is a newer build waiting to enter the stage. In other words, if build 1 is in the stage, 2 is waiting to enter, and 3 gets to the same stage statement, 2 will be canceled. If builds reach the stage statement out of order, so build 1 takes a long time to get through earlier stages, and then build 2 enters the stage, 1 will wait for it to exit the stage and then proceed. I think what you are looking for is the linear option suggested in JENKINS-27039 . I will not mark this a duplicate since the main planned fix there is the eager option, which is for a different purpose.

          Marcus Cobden added a comment -

          The linear option sounds exactly like what I was hoping for, thanks!

          Marcus Cobden added a comment - The linear option sounds exactly like what I was hoping for, thanks!

          Jesse Glick added a comment -

          I think the milestone step (in testing) addresses this.

          Jesse Glick added a comment - I think the milestone step (in testing) addresses this.

          Released as pipeline-milestone-step:1.0.

          Antonio Muñiz added a comment - Released as pipeline-milestone-step:1.0 .

            amuniz Antonio Muñiz
            mcobden Marcus Cobden
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: