-
Bug
-
Resolution: Done-Errata
-
Major
-
rhel-9.0.0
-
anaconda-34.25.5.7-1.el9
-
None
-
None
-
rhel-sst-installer
-
ssg_front_door
-
20
-
0
-
False
-
-
No
-
None
-
Pass
-
None
-
If docs needed, set a value
-
-
Unspecified
-
None
Description of problem:
When the Anaconda Payload thread encounters an error, it triggers a callback that Anaconda spokes can react to. The problem is that the thread does not terminate right away after triggering the callback.
except (OSError, DBusError, PayloadError, DNFManagerError) as e:
log.error("PayloadError: %s", e)
self._error = self.ERROR_SETUP
self._set_state(PayloadState.ERROR)
payload.unsetup()
return
Unfortunately Source spoke decides if it is ready (and this thus accessible) based on no payload related threads running:
@property
def ready(self):
return (self._ready and
not threadMgr.get(constants.THREAD_PAYLOAD) and
not threadMgr.get(constants.THREAD_SOFTWARE_WATCHER) and
not threadMgr.get(constants.THREAD_CHECK_SOFTWARE))
So error callback is triggered -> Source spoke status updated -> thread still running -> ready == False -> Source spoke not accessible
Version-Release number of selected component (if applicable):
How reproducible:
Almost always with Satellite.
Steps to Reproduce:
1. register to a Satellite instance in the Connect to Red Hat spoke
2. press the unregister button
3. press the Done button to return to hub
Actual results:
status of the Source spoke is grey and the spoke is no accessible
Expected results:
status of the Source spoke is is not and the spoke is accessible
Additional info:
There is an easy workaround - just enter and then exit another accessible spoke. This will fix the issue and Source spoke will be again accessible.
There are also also most likely other ways how to reproduce the bug than just the Satellite usecase & it might even exist in RHEL 8, though it will be harder to reproduce without Satellite support there.
- external trackers
- links to
-
RHBA-2024:130339 anaconda bug fix and enhancement update