From 7e754518677003a6b5760cfb57775f5f9dde597a Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Wed, 5 Sep 2018 00:15:55 +0300 Subject: [PATCH] Try to kill processes even more thoroughly. Closes #4127. --- mesonbuild/mtest.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/mesonbuild/mtest.py b/mesonbuild/mtest.py index 3d3d2f59d..910136fc9 100644 --- a/mesonbuild/mtest.py +++ b/mesonbuild/mtest.py @@ -354,7 +354,18 @@ class SingleTestRunner: # There's nothing we can do (maybe the process # already died) so carry on. pass - (stdo, stde) = p.communicate() + try: + (stdo, stde) = p.communicate(timeout=1) + except subprocess.TimeoutExpired: + # An earlier kill attempt has not worked for whatever reason. + # Try to kill it one last time with a direct call. + # If the process has spawned children, they will remain around. + p.kill() + try: + (stdo, stde) = p.communicate(timeout=1) + except subprocess.TimeoutExpired: + stdo = b'Test process could not be killed.' + stde = b'' endtime = time.time() duration = endtime - starttime stdo = decode(stdo)