From 31e577bc3472c63be38b89979ae2d42fc93e0ac8 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