Merge "Allow a few more starting builds"
diff --git a/tests/unit/test_executor.py b/tests/unit/test_executor.py
index 8cb98ee..46e1d99 100755
--- a/tests/unit/test_executor.py
+++ b/tests/unit/test_executor.py
@@ -490,6 +490,7 @@
def test_slow_start(self):
self.executor_server.hold_jobs_in_build = True
self.executor_server.max_starting_builds = 1
+ self.executor_server.min_starting_builds = 1
self.executor_server.manageLoad()
self.assertTrue(self.executor_server.accepting_work)
A = self.fake_gerrit.addFakeChange('common-config', 'master', 'A')
diff --git a/zuul/executor/server.py b/zuul/executor/server.py
index ffc083f..a2a9b42 100644
--- a/zuul/executor/server.py
+++ b/zuul/executor/server.py
@@ -1636,6 +1636,7 @@
'load_multiplier', '2.5'))
self.max_load_avg = multiprocessing.cpu_count() * load_multiplier
self.max_starting_builds = self.max_load_avg * 2
+ self.min_starting_builds = 4
self.min_avail_mem = float(get_default(self.config, 'executor',
'min_avail_mem', '5.0'))
self.accepting_work = False
@@ -1975,7 +1976,7 @@
starting_builds += 1
max_starting_builds = max(
self.max_starting_builds - len(self.job_workers),
- 1)
+ self.min_starting_builds)
if self.accepting_work:
# Don't unregister if we don't have any active jobs.
if load_avg > self.max_load_avg: