chi: fix dead horizon console - #21
Merged
msherman64 merged 2 commits intoJul 31, 2026
Merged
Conversation
msherman64
added a commit
that referenced
this pull request
Aug 17, 2026
ironic stores a persistent "console_enabled" flag per node. nova checks that flag before attempting to connect. However, ipmi consoles only support a single connection, and nova has no way to tell if there's already one active. The existing code has a workaround which tries to kill any old session by toggling "console_enabled" off and back on. However, this can fail! Any concurrent access to the horizon console will trigger multiple requests to toggle that setting on the same node, hitting an ironic "node is locked" error, and leaving the node state in "console_disabled" This workaround unconditionally tries to enable the serial console. A "real" fix needs ironic to expose an api for "reset serial console", so that the nova driver can use that instead of toggling a persistent flag. (cherry picked from commit 8458f38)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Another edge case:
ironic stores a persistent "console_enabled" flag per node.
nova checks that flag before attempting to connect.
However, ipmi consoles only support a single connection, and nova has no way to tell if there's already one active.
The existing code has a workaround which tries to kill any old session by toggling "console_enabled" off and back on.
However, this can fail! Any concurrent access to the horizon console will trigger multiple requests to toggle that setting on the same node, hitting an ironic "node is locked" error, and leaving the node state in "console_disabled"
This workaround unconditionally tries to enable the serial console.
A "real" fix needs ironic to expose an api for "reset serial console", so that the nova driver can use that instead of toggling a persistent flag.