• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

NVIDIA / nodewright / 27242174545

09 Jun 2026 11:20PM UTC coverage: 81.667% (+0.03%) from 81.64%
27242174545

push

github

web-flow
fix(operator): promote skipped interrupt packages from the reconcile loop (closes #270) (#272)

A package parked at (interrupt, skipped), skipped because a higher-priority interrupt
won the node's single interrupt slot, could be orphaned forever, leaving the node
cordoned and the Skyhook in_progress. This surfaced as the flaky config-skyhook
"update while running" e2e step.

The only skipped-to-complete promotion path was edge-triggered: wrapper.ProgressSkipped
ran solely on an interrupt-pod completion in the pod controller, and it never
re-serialized the nodeState annotation. If that edge was missed (the interrupt pod was
already garbage-collected, or the package was skipped after the pod completed), nothing
else ever promoted it and the main reconcile only waited.

- wrapper.ProgressSkipped now persists via SetState (like Upsert/RemoveState), so a
  promotion actually reaches the nodeState annotation the Node patch carries.
- ProcessInterrupt promotes a skipped package once it is the interrupt winner
  (promoteSkippedWinner). runInterrupt is true only after the preempting interrupt has
  completed and left the runnable set, so the reconcile converges on its own instead of
  depending on a pod event that may never arrive.

Also extracts nil-safe predicate helpers on *PackageStatus (IsInterruptStage, IsActive,
IsSkipped) and dedups the inlined uninstall-cycle check in IsComplete onto the existing
NodeState.IsUninstallCycleInProgress, simplifying ProcessInterrupt's compound conditionals.

New unit specs drive the real reconcile path rather than calling NodeState.ProgressSkipped
directly. make unit-tests, fmt, vet, and lint are green.

Signed-off-by: Brian Lockwood <lockwobr@gmail.com>

41 of 45 new or added lines in 4 files covered. (91.11%)

4 existing lines in 2 files now uncovered.

8094 of 9911 relevant lines covered (81.67%)

9.31 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

83.87
/operator/internal/controller/skyhook_controller.go


Source Not Available

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc