New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 682541 link

Starred by 0 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Feature



Sign in to add a comment

implement a way to manually pause builds in a buildbucket bucket

Project Member Reported by dpranke@chromium.org, Jan 19 2017

Issue description

buildbucket seems to be a good central place to have manual administrative controls over the load on buildbots. Given that we don't yet have a perfectly load-managed mechanism for not overloading buildbots, it seems like it would be good to have a way to "pause" buildbucket and tell it to stop scheduling builds in a given bucket.

Implementing this feature probably should also include some way of exposing to users that scheduling builds is temporarily paused, but maybe that's not strictly necessary.

Separately, we might want buildbucket to auto-throttle when loads are too high, but I'd like to track that as a separate request.

There is more context and similar discussions on this problem in  bug 657328 ; in particular, in that bug we talk about wanting quota mechanisms or rate-limiting particular users (particularly the CQ), but I don't want to do that as part of this bug.

There is also  bug 656862  for the generic concept of finer-grained quotas for either buildbucket or swarming.

Assigning to estaab to further triage and/or find a better owner to do the work.

+andybons for thoughts on how a paused buildbucket might be reflected in buildbucket (and/or sheriff-o-matic, trooper-o-matic, etc.).
 

Comment 1 by estaab@chromium.org, Jan 20 2017

Cc: no...@chromium.org
+nodir who will be back soon.

If we do this I wonder if the API will need to change to tell writers that the queue is blocked or readers that they can't acquire leases, or if we should just hide items from readers. In the case of swarming builders we push instead of having a reader poll so we need to consider that too.

Comment 2 by no...@chromium.org, Jan 26 2017

Cc: -no...@chromium.org estaab@chromium.org
Owner: no...@chromium.org
> Separately, we might want buildbucket to auto-throttle when loads are too high, but I'd like to track that as a separate request.

there is a mechanism for this specific to buildbot in place, not used: https://chromium.googlesource.com/chromium/tools/build/+/master/scripts/master/master_utils.py#529
this is a limit on number of builds buildbot can lease from buildbucket on schedule on its slaves. In this past this was set to the dynamic value of "number of currently connected slaves". The feature was disabled because users wanted to see their builds among pending builds in a builder, and using the feature builds appear there with a delay during peak times. Enabling the feature back is easy.

Implementing real "pause a bucket" feature in buildbucket is also possible and seems easy: that would be an extra bit per bucket. When true, the "is there anything else to build" buildbucket query will return nothing.

It won't work for swarmbucket right away ATM because swarmbucket creates tasks when a build is scheduled, but I was thinking to change swarmbucket so that it polls buildbucket and then schedules tasks, like buidlbot does. It would solve some other sawrmbucket problems too.
in comment #2, nodir@ wrote:
> Enabling the feature back is easy.

That's good to know, but I agree that given the way the UI exposes things this is probably not what we want, so let's focus on "pause" instead.

We can close this, yes?

Comment 5 by no...@chromium.org, May 9 2017

Labels: -Type-Bug Type-Feature
Status: Fixed (was: Assigned)
Yes

Sign in to add a comment