New issue
Advanced search Search tips

Issue 750959 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner: ----
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature



Sign in to add a comment

Ensure active buildbucket/swarming build is unique

Project Member Reported by dgarr...@chromium.org, Aug 1 2017

Issue description

ChromeOS has some builders which cannot safely have more than one instance at a time building.

Examples include the "master-paladin" (master builder for the CQ).

It would be nice to have a way in swarming and/or buildbucket to ensure that no more than one instance at time is building.
 
Owner: mar...@chromium.org
Summary: Ensure active buildbucket/swarming build is unique (was: Ensure production buildbucket/swarming build is unique)
I don't think this is a huge deal, but it would be nice to have a safety net in place.

Also, I doubt there is a good solution, just verifying.

Comment 2 by mar...@chromium.org, Nov 14 2017

Cc: -d...@chromium.org no...@chromium.org
Adding Nodir. I think this may be done on buildbucket side but I can't see how on the Swarming side.

Comment 3 by no...@chromium.org, Nov 14 2017

Cc: mar...@chromium.org
Owner: ----
what triggers those builds? chromium does not have this problem because such builds are/would be triggered by luci-scheduler which can guarantee that it runs only one bulid at a time. Ideally only luci-scheduler has permissions to schedule builds in such builders, so that's how we solve the problem. Can you use luci-scheduler for this case?

On buildbot it is guaranteed by having one slave attached to the builder. Is this how CrOS solves the problem on buildbot? If so, CrOS can do the same thing on swarmbucket: in builder definition, add "id:<botid>" dimension.

Comment 4 by no...@chromium.org, Nov 14 2017

Cc: vadimsh@chromium.org
We have a variety of ways to schedule builders:

* LUCI Scheduler
* Master builds schedule slave builds.
* Launch via UI (not yet implemented, I'm expecting safe limits)
* Manual Launch via command line tool.

Manually launching a problematic builder is possible, but would require a user ignore multiple warnings and confirmations.

I only filed this because it would be nice to have a safety net in case something gets out of whack.

Comment 6 by no...@chromium.org, Nov 15 2017

Components: Infra>Platform>Buildbucket>Swarmbucket
Labels: -Type-Bug Type-Feature

Comment 7 by no...@chromium.org, Nov 15 2017

Status: Available (was: Untriaged)
current work around: use "id" dimension in the builder configuration to limit the number of machines mapped to the builder

Comment 8 by no...@chromium.org, Apr 30 2018

Components: Infra>Platform>Scheduler
since last comment, luci-scheduler took the responsibility for managing max number of builds of a builder. For example, Chromium's "Builders" (builders that compile) use luci-scheduler to trigger "Testers" (builders that run tests). Luci-scheduler ensures that that the number of simultaneously running builds of a builder is limited (currently the limit is 1).

With this separation of responsibilities, it seems to me that that buildbucket should not grow a similar responsibility. 

The deal breaker for CrOS is that luci-scheduler requires every such job to be defined in a config file and *currently* has no plans to support "dynamic jobs" (like buildbucket api v2 plans to), i.e. you cannot define a job by calling EmitTriggers RPC. This part requires design.

Comment 9 by no...@chromium.org, May 19 2018

Status: WontFix (was: Available)
Since last comment, we’ve realized that “Dynamic builders” feature alone won’t solve CrOS-specific problem of complex configurations and high number of buckets, so we need to make enitire configuration set (all files) more dynamic. The current thinking is allow direct config pushes from clients right into luci config. 

This means no more “deal breaker”. This feature exists in luci scheduler 

Sign in to add a comment