The syncing scripts for A/B infrastructure currently only require that there are no pending builds and no running test groups assigned to a builder before a new test group is assigned to it. This means that if a builder becomes available, then runs a test that puts the host into a state where it fails until someone manually fixes it, the broken host can fail all pending jobs that match the failing configuration. To address this, we will start running periodic health checks against the A/B queues for a buildmaster and only schedule jobs when the last build (or health check) succeeded and previously noted conditions are true.
<rdar://problem/74042833>
Created attachment 420408 [details] v1
Created attachment 420482 [details] v2 Fixes style checker errors.
Comment on attachment 420482 [details] v2 View in context: https://bugs.webkit.org/attachment.cgi?id=420482&action=review > Websites/perf.webkit.org/tools/js/buildbot-syncer.js:84 > + lastCompletedBuildSuccessful() { return this._lastCompletedBuild == null || this._lastCompletedBuild.result() == 0; } Ditto per https://webkit.org/code-style-guidelines/#zero-comparison > Websites/perf.webkit.org/tools/js/buildbot-syncer.js:193 > + if ((!this._lastCompletedBuild || this._lastCompletedBuild.buildTag() < entry.buildTag()) && entry.hasFinished()) buildTag doesn't guarantee to be indicative of build time, but in Buildbot case, the larger build tag means more recent > Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:254 > + if (syncer.isTester() && nextRequest.order() == 0 && !syncer.lastCompletedBuildSuccessful()) Nit: per webkit code style guideline https://webkit.org/code-style-guidelines/#zero-comparison, it should be `!nextRequest.order()` Also leave a comment about currently limiting to tester syncer.
r=me with comments.
Created attachment 420563 [details] v3 Fixed style issues.
Created attachment 420564 [details] v3-1
Committed r272971: <https://commits.webkit.org/r272971> All reviewed patches have been landed. Closing bug and clearing flags on attachment 420564 [details].
<rdar://problem/74416438>