[yocto-autobuilder2] [PATCH] builders: Fix quarantine handling


Richard Purdie
 

The way the canStartBuild code was written, it inserted a delay between
each build starting of 2 minutes unconditionally. We only want to do this
if the worker had run out of space so tweak the code accordingly.

Signed-off-by: Richard Purdie <richard.purdie@...>
---
builders.py | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/builders.py b/builders.py
index 20ad0bb2..e575a1a6 100644
--- a/builders.py
+++ b/builders.py
@@ -69,16 +69,17 @@ def canStartBuild(builder, wfb, request):
threshold = 60 # GB of space
if int(cmd.stdout) < threshold:
log.msg("Detected {0} GB of space available, less than threshold of {1} GB. Can't start build".format(cmd.stdout, threshold))
+ wfb.worker.quarantine_timeout = 2 * 60
wfb.worker.putInQuarantine()
return False
- else:
- log.msg("Detected {0} GB of space available, more than threshold of {1} GB. OK to build".format(cmd.stdout, threshold))
-
- wfb.worker.quarantine_timeout = 120
- wfb.worker.putInQuarantine()
-
- wfb.worker.resetQuarantine()

+ log.msg("Detected {0} GB of space available, more than threshold of {1} GB. OK to build".format(cmd.stdout, threshold))
+ if wfb.worker.isPaused:
+ # It was low on space so delay the builds starting a bit
+ wfb.worker.quarantine_timeout = 2 * 60
+ wfb.worker.putInQuarantine()
+ else:
+ wfb.worker.exitQuarantine()
return True

def create_builder_factory():
--
2.32.0

Join yocto@lists.yoctoproject.org to automatically receive all group messages.