[bitbake-devel,1/9] hashserv: Don't daemonize server process

Submitted by Richard Purdie on Sept. 27, 2019, 12:33 p.m. | Patch ID: 165383

Details

Message ID 20190927123347.19276-1-richard.purdie@linuxfoundation.org
State New
Headers show

Commit Message

Richard Purdie Sept. 27, 2019, 12:33 p.m.
From: Joshua Watt <jpewhacker@gmail.com>

The hash server process is terminated and waited on with join(), so it
should not be a daemon. Daemonizing it cause races with the server
cleanup, especially in the selftest because the process may not have
terminated and cleanup up its socket before the test cleanup runs and
tries to do it.

[YOCTO #13542]

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 lib/bb/cooker.py      | 1 -
 lib/hashserv/tests.py | 1 -
 2 files changed, 2 deletions(-)

Patch hide | download patch | download mbox

diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 0c540028ae..20ef04d3ff 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -399,7 +399,6 @@  class BBCooker:
                 self.hashservaddr = "unix://%s/hashserve.sock" % self.data.getVar("TOPDIR")
                 self.hashserv = hashserv.create_server(self.hashservaddr, dbfile, sync=False)
                 self.hashserv.process = multiprocessing.Process(target=self.hashserv.serve_forever)
-                self.hashserv.process.daemon = True
                 self.hashserv.process.start()
             self.data.setVar("BB_HASHSERVE", self.hashservaddr)
             self.databuilder.origdata.setVar("BB_HASHSERVE", self.hashservaddr)
diff --git a/lib/hashserv/tests.py b/lib/hashserv/tests.py
index 6584ff57b4..a5472a996d 100644
--- a/lib/hashserv/tests.py
+++ b/lib/hashserv/tests.py
@@ -32,7 +32,6 @@  class TestHashEquivalenceServer(object):
 
         self.server = create_server(self.get_server_addr(), self.dbfile)
         self.server_thread = multiprocessing.Process(target=self._run_server)
-        self.server_thread.daemon = True
         self.server_thread.start()
         self.client = create_client(self.server.address)