From 9fdef4dfae94015cb1c23b12a9d225d717b265cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrg=20Billeter?= Date: Thu, 19 Dec 2019 09:00:21 +0100 Subject: job.py: Do not call Process.close() As we handle subprocess termination by pid with an asyncio child watcher, the multiprocessing.Process object does not get notified when the process terminates. And as the child watcher reaps the process, the pid is no longer valid and the Process object is unable to check whether the process is dead. This results in Process.close() raising a ValueError. Fixes: 9c23ce5c ("job.py: Replace message queue with pipe") --- src/buildstream/_scheduler/jobs/job.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/buildstream/_scheduler/jobs/job.py b/src/buildstream/_scheduler/jobs/job.py index 07bbe9c60..b4060910b 100644 --- a/src/buildstream/_scheduler/jobs/job.py +++ b/src/buildstream/_scheduler/jobs/job.py @@ -452,7 +452,6 @@ class Job: # Force the deletion of the pipe and process objects to try and clean up FDs self._pipe_r.close() - self._process.close() self._pipe_r = self._process = None # _parent_process_envelope() -- cgit v1.2.1