[Buildbot-devel] Ignoring offline builders/slaves

Jason Edgecombe jason at rampaginggeek.com
Fri Mar 13 01:48:08 UTC 2015


Hi Jim,

As a volunteer project, we have some challenges with getting enough 
slaves to cover the desired OS's, let alone having redundant slaves. 
Even if we had redundant slaves, I doubt that we would have identical 
slaves. Your're correct in that I want to relax the constraints on 
either the Gerrit status plugin or alter the Gerrit scheduler to use a 
dynamic pool.

Thanks,
Jason

On 03/12/2015 01:19 AM, Jim Rowan wrote:
> Jason,
>
> Many of your builders have only one buildslave that is servicing that builder.  If that buildslave is offline, then that build can’t proceed.  The normal way to avoid this is to have more than one buildslave servicing each builder.  If one of them is down, one of the other slaves will handle it.   This doesn’t really have anything to do with gerrit.
>
> You have a policy coded in your config that all the builds for a particular change have to succeed in order to gain a +1 verified vote in gerrit.  Your goal seems to be to relax that policy such that only some subset of builds are required.   I can’t think of a particularly reasonable way to do that.
>
> The fundamental problem is that GerritStatusPush won’t call it’s summary callback until all of the builds in the buildset have completed.  If some of the builds are blocked, you’re stuck waiting.
>
> I suppose the most straightforward way to approach this is to write a custom scheduler that dynamically checks to see which of the builders have at least one buildslave that is online at the time a change comes in, and to only trigger those, rather than the whole list.   Another approach might be to have something that recognizes when builds are queued for builders that have no online buildslaves, and to cancel those builds.   (I’m not sure that is effective in removing them from the buildset …but  that’s the objective.)
>
>
>





More information about the devel mailing list