improve error messages when attached modules fail on startup
fix to align local frappy branch wip with gerrit repo Change-Id: Iafbd8c5e4b67209046c252f2cafa69dcb6e2bbcb
This commit is contained in:
@@ -613,7 +613,6 @@ class Module(HasAccessibles):
|
|||||||
"""
|
"""
|
||||||
# we do not need self.errors any longer. should we delete it?
|
# we do not need self.errors any longer. should we delete it?
|
||||||
# del self.errors
|
# del self.errors
|
||||||
self.polledModules = [m for m in self.polledModules if not m._initfailed]
|
|
||||||
if self.polledModules:
|
if self.polledModules:
|
||||||
self.__poller = mkthread(self.__pollThread, self.polledModules, start_events.get_trigger())
|
self.__poller = mkthread(self.__pollThread, self.polledModules, start_events.get_trigger())
|
||||||
self.startModuleDone = True
|
self.startModuleDone = True
|
||||||
@@ -726,9 +725,6 @@ class Module(HasAccessibles):
|
|||||||
if rfunc.poll:
|
if rfunc.poll:
|
||||||
pinfo.polled_parameters.append((mobj, rfunc, pobj))
|
pinfo.polled_parameters.append((mobj, rfunc, pobj))
|
||||||
try:
|
try:
|
||||||
for mobj in list(modules):
|
|
||||||
if mobj._initfailed:
|
|
||||||
modules.remove(mobj)
|
|
||||||
for mobj in modules:
|
for mobj in modules:
|
||||||
# TODO when needed: here we might add a call to a method :meth:`beforeWriteInit`
|
# TODO when needed: here we might add a call to a method :meth:`beforeWriteInit`
|
||||||
mobj.writeInitParams()
|
mobj.writeInitParams()
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ class SecNode:
|
|||||||
self.traceback_counter += 1
|
self.traceback_counter += 1
|
||||||
self.errors.append(f'error initializing {modulename}: {e!r}')
|
self.errors.append(f'error initializing {modulename}: {e!r}')
|
||||||
modobj._initfailed = True
|
modobj._initfailed = True
|
||||||
raise InitFailed('try to access erroneous module')
|
raise InitFailed('try to access erroneous module') from e
|
||||||
modobj._isinitialized = True
|
modobj._isinitialized = True
|
||||||
self.log.debug('initialized module %r', modulename)
|
self.log.debug('initialized module %r', modulename)
|
||||||
return modobj
|
return modobj
|
||||||
|
|||||||
@@ -308,7 +308,7 @@ class Server:
|
|||||||
# all errors from initialization process
|
# all errors from initialization process
|
||||||
errors = self.secnode.errors
|
errors = self.secnode.errors
|
||||||
|
|
||||||
if not self._testonly:
|
if not self._testonly and not errors: # do not start pollers when we have errors already
|
||||||
start_events = MultiEvent(default_timeout=30)
|
start_events = MultiEvent(default_timeout=30)
|
||||||
for modname, modobj in self.secnode.modules.items():
|
for modname, modobj in self.secnode.modules.items():
|
||||||
# startModule must return either a timeout value or None (default 30 sec)
|
# startModule must return either a timeout value or None (default 30 sec)
|
||||||
|
|||||||
Reference in New Issue
Block a user