From c9a57aab082f55d525f003db61290b6ab7437b7c Mon Sep 17 00:00:00 2001 From: Jeffrey Zhang Date: Mon, 28 Oct 2019 21:26:59 +0800 Subject: [PATCH] reap rootwrap daemon process when it is timeout When the daemon process is timeout, it will kill itself. But the parent doesn't reap it. This patch add a thread to wait the process to be done once the daemon is started. Closes-Bug: #1850241 Change-Id: Ic209b8ef86c2522ce7e4bd81ac57bf13f1706a81 --- oslo_rootwrap/client.py | 9 +++++++++ ...reap-rootwrap-daemon-process-60aebb56d8015484.yaml | 11 +++++++++++ 2 files changed, 20 insertions(+) create mode 100644 releasenotes/notes/reap-rootwrap-daemon-process-60aebb56d8015484.yaml diff --git a/oslo_rootwrap/client.py b/oslo_rootwrap/client.py index ee64b74..0dd0742 100644 --- a/oslo_rootwrap/client.py +++ b/oslo_rootwrap/client.py @@ -85,6 +85,15 @@ class Client(object): (stderr,)) LOG.info("Spawned new rootwrap daemon process with pid=%d", process_obj.pid) + + def wait_process(): + return_code = process_obj.wait() + LOG.info("Rootwrap daemon process exit with status: %d", + return_code) + + reap_process = threading.Thread(target=wait_process) + reap_process.daemon = True + reap_process.start() self._manager = ClientManager(socket_path, authkey) self._manager.connect() self._proxy = self._manager.rootwrap() diff --git a/releasenotes/notes/reap-rootwrap-daemon-process-60aebb56d8015484.yaml b/releasenotes/notes/reap-rootwrap-daemon-process-60aebb56d8015484.yaml new file mode 100644 index 0000000..79bd400 --- /dev/null +++ b/releasenotes/notes/reap-rootwrap-daemon-process-60aebb56d8015484.yaml @@ -0,0 +1,11 @@ +--- +fixes: + - | + Reap the rootwrap daemon process after it is timeout and quit. When the + daemon process is timeout, it will kill itself. But the parent doesn't reap + it. Fixed this behaviour by adding a thread to wait the process to be done + once the daemon is started. + + More info please refer the LP #1850241 [1]. + + [1] https://bugs.launchpad.net/oslo.rootwrap/+bug/1850241