1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-30 12:29:55 +00:00

bitbake: server/process: Improve exception and idle function logging

Currently if the idle functions loop suffers a traceback, it is
silently dropped and there is no log message to say what happened.
This change at least means the traceback is in the cooker log, making
some debugging possible.

Add some logging to show when handlers are added/removed to allow
a better idea of what the server code is doing from the server log
file.

(Bitbake rev: 9cf3102dc36513124fe5ead2f1e448b51833b6ac)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2022-12-30 21:42:29 +00:00
parent 4c5d6edb0b
commit 7723baafa6
+4
View File
@@ -106,6 +106,7 @@ class ProcessServer():
"""Register a function to be called while the server is idle""" """Register a function to be called while the server is idle"""
assert hasattr(function, '__call__') assert hasattr(function, '__call__')
self._idlefuns[function] = data self._idlefuns[function] = data
serverlog("Registering idle function %s" % str(function))
def run(self): def run(self):
@@ -361,6 +362,7 @@ class ProcessServer():
try: try:
retval = function(self, data, False) retval = function(self, data, False)
if retval is False: if retval is False:
serverlog("Removing idle function %s" % str(function))
del self._idlefuns[function] del self._idlefuns[function]
nextsleep = None nextsleep = None
elif retval is True: elif retval is True:
@@ -378,6 +380,7 @@ class ProcessServer():
if not isinstance(exc, bb.BBHandledException): if not isinstance(exc, bb.BBHandledException):
logger.exception('Running idle function') logger.exception('Running idle function')
del self._idlefuns[function] del self._idlefuns[function]
serverlog("Exception %s broke the idle_thread, exiting" % traceback.format_exc())
self.quit = True self.quit = True
# Create new heartbeat event? # Create new heartbeat event?
@@ -395,6 +398,7 @@ class ProcessServer():
except Exception as exc: except Exception as exc:
if not isinstance(exc, bb.BBHandledException): if not isinstance(exc, bb.BBHandledException):
logger.exception('Running heartbeat function') logger.exception('Running heartbeat function')
serverlog("Exception %s broke in idle_commands, exiting" % traceback.format_exc())
self.quit = True self.quit = True
if nextsleep and bb.event._heartbeat_enabled and now + nextsleep > self.next_heartbeat: if nextsleep and bb.event._heartbeat_enabled and now + nextsleep > self.next_heartbeat:
# Shorten timeout so that we we wake up in time for # Shorten timeout so that we we wake up in time for