Skip to content

chi: fix dead horizon console - #21

Merged
msherman64 merged 2 commits into
wip/chameleoncloud/2024.1from
fix/ironic_serial_console_deadlock
Jul 31, 2026
Merged

chi: fix dead horizon console#21
msherman64 merged 2 commits into
wip/chameleoncloud/2024.1from
fix/ironic_serial_console_deadlock

Conversation

@msherman64

@msherman64 msherman64 commented Jul 31, 2026

Copy link
Copy Markdown

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.

@msherman64
msherman64 requested a review from pdmars July 31, 2026 21:11
@msherman64
msherman64 merged commit 8458f38 into wip/chameleoncloud/2024.1 Jul 31, 2026
0 of 4 checks passed
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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant