bitbake: bitbake: prserv: SIGTERM handling hung process

The current SIGTERM handler hungs the process instead of
making it exit. The problem seems to be that the handler thread
is not signaled to quit, so it stays there doing its work, as
it is not a daemon thread. Setting the quit variable fixes this.

While at it, to not use the SystemExit exception to terminate
upon SIGTERM but instead left the quit flag do its job. This way
the PID file is properly removed.

[YOCTO #9035]

(Bitbake rev: 655ec800d54da581229f12efb6f0baf54975fed4)

Signed-off-by: Diego Santa Cruz <Diego.SantaCruz@spinetix.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Diego Santa Cruz
2016-02-02 13:05:50 +01:00
committed by Richard Purdie
parent be032fc40e
commit abf8a8fbc3

View File

@@ -103,7 +103,7 @@ class PRServer(SimpleXMLRPCServer):
def sigterm_handler(self, signum, stack):
if self.table:
self.table.sync()
raise SystemExit
self.quit=True
def process_request(self, request, client_address):
self.requestqueue.put((request, client_address))