Details
-
New Feature
-
Status: In Review (View Workflow)
-
Major
-
Resolution: Unresolved
-
N/A
-
None
Description
Discussion: https://mariadb.zulipchat.com/#narrow/channel/236699-Buildbot/topic/Buildbot.20queue/near/585643469
Is related to MDBF-1191 and might render it obsolete since this patch will address the core issue.
Synopsis
Inspired by https://docs.buildbot.net/latest/manual/configuration/services/old_build_canceller.html
which is not currently available in our Buildbot 2.7.x
Since the upgrade path from 2.7.x -> 4.x.y (MDBF-916) is challenging at the moment, requiring lots of configuration changes, database migrations and reducing the number of masters, this solution offers a very good trade-off until the upgrade can happen.
Implementation
The base idea is to let the tarball-docker builder cancel older build requests since this is our entry-point before triggering all builders.
An older build request is defined as:
- any build request (claimed or not i.e. in queue or running) where there's a matching (branch, repository, codebase) tuple with the current tarball-docker build and: the other build request revision (commit) is different than the current and the other timestamp is older than the current.
Examples
A superseding tarball-docker build will look for older build requests on the same branch (be it a pull request or an upstream branch),
and if it finds any will cancel them if:
current_timestamp > other_timestamp and current_revision != other_revision