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

NVIDIA / nodewright / 27242174545
82%

Build:
DEFAULT BRANCH: main
Ran 09 Jun 2026 11:39PM UTC
Jobs 1
Files 46
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

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

Uncovered Changes

Lines Coverage ∆ File
2
77.51
-0.75% operator/internal/controller/pod_controller.go
2
83.87
0.03% operator/internal/controller/skyhook_controller.go

Coverage Regressions

Lines Coverage ∆ File
3
83.87
0.03% operator/internal/controller/skyhook_controller.go
1
90.12
0.43% operator/api/v1alpha1/skyhook_types.go
Jobs
ID Job ID Ran Files Coverage
1 27242174545.1 09 Jun 2026 11:39PM UTC 46
81.67
GitHub Action Run
Source Files on build 27242174545
  • Tree
  • List 46
  • Changed 4
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27242174545
  • a200195e on github
  • Prev Build on main (#27170830159)
  • Next Build on main (#27426773396)
  • Delete
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