summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/prserv
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/prserv')
-rw-r--r--bitbake/lib/prserv/serv.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/bitbake/lib/prserv/serv.py b/bitbake/lib/prserv/serv.py
index a4ae229134..1303f12b45 100644
--- a/bitbake/lib/prserv/serv.py
+++ b/bitbake/lib/prserv/serv.py
@@ -62,9 +62,6 @@ class PRServer(SimpleXMLRPCServer):
self.register_function(self.importone, "importone")
self.register_introspection_functions()
- self.db = prserv.db.PRData(self.dbfile)
- self.table = self.db["PRMAIN"]
-
self.requestqueue = Queue.Queue()
self.handlerthread = threading.Thread(target = self.process_request_thread)
self.handlerthread.daemon = False
@@ -100,10 +97,12 @@ class PRServer(SimpleXMLRPCServer):
self.table.sync_if_dirty()
def sigint_handler(self, signum, stack):
- self.table.sync()
+ if self.table:
+ self.table.sync()
def sigterm_handler(self, signum, stack):
- self.table.sync()
+ if self.table:
+ self.table.sync()
raise SystemExit
def process_request(self, request, client_address):
@@ -145,6 +144,10 @@ class PRServer(SimpleXMLRPCServer):
bb.utils.set_process_name("PRServ")
+ # DB connection must be created after all forks
+ self.db = prserv.db.PRData(self.dbfile)
+ self.table = self.db["PRMAIN"]
+
logger.info("Started PRServer with DBfile: %s, IP: %s, PORT: %s, PID: %s" %
(self.dbfile, self.host, self.port, str(os.getpid())))