summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Schubert <contact@benschubert.me>2019-11-08 14:34:12 +0000
committerBenjamin Schubert <contact@benschubert.me>2019-11-08 14:58:54 +0000
commitf59d4e3f44fc2691392cc3b6431f30ba3b81e9b6 (patch)
treecb452a9c750d339297025bb9c1c443daec231c1f
parent64c6f7daef8e6c9d9b883dfc0589001a4cb5df09 (diff)
downloadbuildstream-bschubert/graceful-children-sigterm.tar.gz
job.py: Gracefully handle killed subprocessesbschubert/graceful-children-sigterm
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.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/buildstream/_scheduler/jobs/job.py b/src/buildstream/_scheduler/jobs/job.py
index 975e45c2f..d049373ff 100644
--- a/src/buildstream/_scheduler/jobs/job.py
+++ b/src/buildstream/_scheduler/jobs/job.py
@@ -45,6 +45,7 @@ class _ReturnCode(FastEnum):
PERM_FAIL = 2
SKIPPED = 3
TERMINATED = 4
+ KILLED = -9
# JobStatus:
@@ -462,6 +463,9 @@ class Job():
self.message(MessageType.ERROR, "Process got terminated")
status = JobStatus.FAIL
+ elif returncode == _ReturnCode.KILLED:
+ if not self._terminated:
+ self.message(MessageType.ERROR, "Process got killed without our knowledge")
else:
status = JobStatus.FAIL