[Buildbot-devel] RFC: Assigning builds when load is high
Jared Grubb
jared.grubb at gmail.com
Wed May 6 20:15:33 UTC 2015
Many months ago, I made a change in buildbot to enhance the way that buildslaves and builds get assigned. In particular, we added a “canStartBuild” functor that lets you adjust how these mappings happen.
There was a design decision I made that I’m starting to regret (and have disabled in my buildbot).
Question:
- The BRD attempts to pick buildslaves that can aquire builder locks. If no buildslave qualify (ie high load), we have two choices:
1. pick a random buildslave that would work otherwise
2. give up and wait until a buildslave can acquire the locks needed
Currently, the BRD does #1, however, I’ve seen this cause problems when quick builds get stuck behind long builds … and so I’ll see my set of buildslaves go idle except for one, which will have a few builds on it, all stuck behind one long build. If we did #2, then the short builds would get assigned immediately as the next buildslave goes idle.
I am thinking that #2 should be the default behavior — or at least be opt-in configurable.
Note this applies to both eight and nine and is a fairly trivial patch either way.
Anyone have any thoughts or comments?
Jared
More information about the devel
mailing list