summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Schubert <contact@benschubert.me>2019-11-08 14:34:12 +0000
committerbst-marge-bot <marge-bot@buildstream.build>2019-11-13 16:01:32 +0000
commitd20f90b265647d3dd98e65bf201ad87b7960018d (patch)
treeaef6a12046e69a4453892fb3ba205ef3a2ddea35
parent928d66b094eb528f98666c15f4ee37c5c5863244 (diff)
downloadbuildstream-d20f90b265647d3dd98e65bf201ad87b7960018d.tar.gz
job.py: Gracefully handle killed subprocesses
This ensures that we don't show an unexpected error when we forcefully kill one of our workers
-rw-r--r--src/buildstream/_scheduler/jobs/job.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/buildstream/_scheduler/jobs/job.py b/src/buildstream/_scheduler/jobs/job.py
index 9570fea62..3363d7b60 100644
--- a/src/buildstream/_scheduler/jobs/job.py
+++ b/src/buildstream/_scheduler/jobs/job.py
@@ -46,6 +46,7 @@ class _ReturnCode(FastEnum):
PERM_FAIL = 2
SKIPPED = 3
TERMINATED = 4
+ KILLED = -9
# JobStatus:
@@ -463,6 +464,13 @@ class Job():
self.message(MessageType.ERROR, "Process was terminated unexpectedly")
status = JobStatus.FAIL
+ elif returncode == _ReturnCode.KILLED:
+ if self._terminated:
+ self.message(MessageType.INFO, "Process was killed")
+ else:
+ self.message(MessageType.ERROR, "Process was killed unexpectedly")
+
+ status = JobStatus.FAIL
else:
status = JobStatus.FAIL