Uploaded image for project: 'MariaDB Foundation Development'
  1. MariaDB Foundation Development
  2. MDBF-1226

Make duplicate push builds yield to PR builds

    XMLWordPrintable

Details

    • Bug
    • Status: Verified (View Workflow)
    • Major
    • Resolution: Unresolved
    • BB V1.15
    • BB V1.16
    • Buildbot
    • None

    Description

      This is a fix for MDBF-1202 :: while working just fine for most of the time, there's a corner case where the PR build request sits in the queue for the whole duration of the push event build so it can no longer cancel its sibling.

      In a GitHub double-event, Buildbot can queue the push and pull_request tarball-docker requests together, but the push build may get a worker first and complete while the corresponding PR request is still waiting in the queue. By the time the PR build finally runs, it is too late to prevent the duplicate tarball work and any downstream triggers that already happened.

      The reverse can happen too: the PR build may finish before the push build gets a worker. To cover that without walking buildrequest history, the push side first checks incomplete same-builder requests, then falls back to only the 10 most recent completed same-builder requests.

      Flip the direction so the push side yields when it sees the matching PR request. That makes the first running duplicate decide whether it should continue, instead of depending on the PR side to arrive soon enough after the fact.

      The branch guard keeps this limited to disposable normal push branches: refs/* are ignored and branches covered by SAVED_PACKAGE_BRANCHES are not allowed to self-cancel.

      Attachments

        Issue Links

          Activity

            People

              rvarzaru Varzaru Razvan-Liviu
              rvarzaru Varzaru Razvan-Liviu
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0d
                  0d
                  Logged:
                  Time Spent - 1d
                  1d