You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by tv...@apache.org on 2021/02/04 08:12:53 UTC
[buildstream] 01/04: utils.py: Fix stack traces when killing
already dead processes
This is an automated email from the ASF dual-hosted git repository.
tvb pushed a commit to branch tristan/one-cache-size-job-2
in repository https://gitbox.apache.org/repos/asf/buildstream.git
commit fa20374fb8ba3af5c01b06254909a33e27cea643
Author: Tristan Van Berkom <tr...@codethink.co.uk>
AuthorDate: Mon Jan 7 11:04:31 2019 -0500
utils.py: Fix stack traces when killing already dead processes
Handle NoSuchProcess errors transparently inside the function, instead
of only from outside of it where Job uses it.
---
buildstream/_scheduler/jobs/job.py | 9 +--------
buildstream/utils.py | 5 +++++
2 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/buildstream/_scheduler/jobs/job.py b/buildstream/_scheduler/jobs/job.py
index 60ae0d0..3ab7bfa 100644
--- a/buildstream/_scheduler/jobs/job.py
+++ b/buildstream/_scheduler/jobs/job.py
@@ -215,17 +215,10 @@ class Job():
# Forcefully kill the process, and any children it might have.
#
def kill(self):
-
# Force kill
self.message(MessageType.WARN,
"{} did not terminate gracefully, killing".format(self.action_name))
-
- try:
- utils._kill_process_tree(self._process.pid)
- # This can happen if the process died of its own accord before
- # we try to kill it
- except psutil.NoSuchProcess:
- return
+ utils._kill_process_tree(self._process.pid)
# suspend()
#
diff --git a/buildstream/utils.py b/buildstream/utils.py
index a460031..4943336 100644
--- a/buildstream/utils.py
+++ b/buildstream/utils.py
@@ -1050,6 +1050,11 @@ def _kill_process_tree(pid):
# Ignore this error, it can happen with
# some setuid bwrap processes.
pass
+ except psutil.NoSuchProcess:
+ # It is certain that this has already been sent
+ # SIGTERM, so there is a window where the process
+ # could have exited already.
+ pass
# Bloody Murder
for child in children: