Avoid zombie processes in case of using LocalProcessSpawner

This commit is contained in:
Maxim Martynov
2021-07-20 00:48:15 +03:00
parent e38509ca42
commit 9975b8001f
2 changed files with 8 additions and 4 deletions

View File

@@ -722,6 +722,7 @@ class ConfigurableHTTPProxy(Proxy):
def _check_process():
status = self.proxy_process.poll()
if status is not None:
with self.proxy_process:
e = RuntimeError("Proxy failed to start with exit code %i" % status)
raise e from None

View File

@@ -1542,6 +1542,9 @@ class LocalProcessSpawner(Spawner):
if self.proc is not None:
status = self.proc.poll()
if status is not None:
# handle SIGCHILD to avoid zombie processes
# and also close stdout/stderr file descriptors
with self.proc:
# clear state if the process is done
self.clear_state()
return status