fix(rack-controller): recover power-blocked firmware updates [backport 2.1] - #5068
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
🔐 TruffleHog Secret Scan✅ No secrets or credentials found! Your code has been scanned for 700+ types of secrets and credentials. All clear! 🎉 🕐 Last updated: 2026-08-17 19:14:37 UTC | Commit: 551f738 |
nv-dmendoza
left a comment
There was a problem hiding this comment.
LGTM, Backports needed fix
Backports #5031 to
release/v2.1.Rack firmware maintenance can leave a rack permanently stuck in
Maintenance(FirmwareUpgrade(WaitForComplete))when a scoped machine isReadywithdesired_power_state == Off. The rack writeshost_reprovisioning_requested, but the machine power-manager gate prevents the request from being consumed, so the rack controller waits forever and later maintenance requests remain blocked.This backport rejects that condition before RMS submission and recovers racks already stuck by it by marking the firmware job failed, clearing
maintenance_requestedand credentials, conditionally clearing unconsumed rack-owned host requests, and transitioning the rack toError. It also includes the accepted review follow-ups from #5031: one canonical rack-maintenance initiator formatter, non-panicking persisted-job handling, and removal of a shadowed binding. Pending device IDs are included in wait outcomes for diagnosis.Related issues
[nico/state-control] Rack fw update deadlocks when a target tray is powered off | No state SLAType of Change
Breaking Changes
Testing
Additional Notes