-
Committer:
Teddy Hogeborn
-
Date:
2019-07-30 17:03:57 UTC
-
mto:
This revision was merged to the branch mainline in
revision
384.
-
Revision ID:
teddy@recompile.se-20190730170357-jte0piul5mq7j5pr
Server: Reap zombies created by multiprocessing.Process()
When creating checkers as multiprocessing.Process() objects, the
multiprocessing module also creates a parent process (for the
call_pipe() function) to call the actual checker process, but this
parent process is not reaped. This is not a huge problem, since the
zombie is always reaped automatically the next time the multiprocess
starts a new process, but the zombies can be up to as many as there
have ever been simultaneous checker processes. To fix this, the
process object must be join():ed when they report completion of the
child checker process.
* mandos (Client): Fix doc string to correctly state that
Client.checker is a multiprocess.Process() and not
a subprocess.Popen() object.
(Client.checker_callback): After the returncode of the checker
process has been read, wait for the
self.checker Process object to finish by
calling join() on it.
Reported-by: Peter Palfrader <weasel@debian.org>