On Tue, 14 Sep 2010 10:32:06 -0400, Jarod wrote:
> Plague Builders don't accept more
> than the maximum number of build jobs they can handle.
How does the builder know what the maximum number of jobs it can handle is?
See determine_max_jobs() in /usr/bin/plague-builder.
It runs '/usr/bin/getconf _NPROCESSORS_ONLN' and defaults to '1',
which explains your value of '4'.
> The server cannot override that.
Well, it is/was.
No, the builder maintains its own number of max. jobs and free slots.
It rejects further jobs if it's busy and if the server tries to start
more jobs anyway.
The server only keeps track of the current number of free slots of
the builders for scheduling.
I set max_jobs to either 1 or 2 to no effect, it was
always "number of cpus" that got set as the max jobs value.
Right. There is no configuration variable to change that. Seems
everything else is there already (the "cfg" parameter to implement
a configuration parameter to override the default max.jobs value).
So a
dual-core box with hyperthreading was being set up for 4 jobs at a
time. And four -j4 builds at the same time, is, um, well, bad.
Especially when two of the four "cpus" aren't full cores. So I've shut
off hyperthreading and throttled builds to -j1, and everything seems
stable again, but this certainly doesn't feel like a solution, just a
hack-around.
True.