Skip to content

slurm-accounting: fix restart Job ordering, document controller-restart pitfalls - #96

Merged
youngjeong46 merged 1 commit into
mainfrom
fix/slurm-accounting-restart-ordering
Aug 20, 2026
Merged

slurm-accounting: fix restart Job ordering, document controller-restart pitfalls#96
youngjeong46 merged 1 commit into
mainfrom
fix/slurm-accounting-restart-ordering

Conversation

@martin-cala1

@martin-cala1 martin-cala1 commented Aug 19, 2026

Copy link
Copy Markdown
Collaborator

Changes

  • Restart Job sequencing (restartPods.includeWorkers=true): the Job previously deleted controller and worker pods simultaneously. Deleting workers while slurmctld is down strands them — the nodeset controller errors into backoff and doesn't recreate them — and the freshly booted slurmctld parses topology.conf without the dynamic nodes, so jobs fail with "Requested topology configuration is not available". The Job now: waits for the replacement controller pod to be Ready → deletes workers → waits for replacement workers → runs scontrol reconfigure. New restartPods.waitForControllerReadyTimeoutSeconds / waitForWorkersReadyTimeoutSeconds values; restart Role gains watch on pods and create on pods/exec.
  • README known issues for three failure modes hit in practice:
  • Chart version 0.1.1.

Testing

Verified end to end on a live Managed Slurm cluster (1 controller, 2 logins, 1 worker): helm upgrade with the new Job completes with hooks sequencing exactly as intended (worker deleted only after controller Ready; reconfigure after workers Ready), the worker was recreated within seconds instead of stranding, and srun succeeds immediately after helm upgrade returns with no manual steps. helm lint and template rendering verified for both includeWorkers modes.

…itfalls

The restart Job (restartPods.includeWorkers=true) previously deleted the
controller and worker pods at the same time. Deleting workers while
slurmctld is down strands them: the nodeset controller can't sync its
Slurm node cache, errors into exponential backoff, and doesn't recreate
the deleted slurmd pods. And once workers do come back, the freshly
booted slurmctld has already parsed topology.conf without the (dynamic)
nodes, so jobs fail with "Requested topology configuration is not
available" until a reconfigure.

The Job now waits for the replacement controller pod to be Ready before
deleting workers, waits for the replacement workers, then runs scontrol
reconfigure in the controller pod so the nodes rejoin the topology tree.

README known issues added for the above plus the statesave fsGroup mount
failure that any controller restart can hit on a cluster with accumulated
state (prevention one-liner + helper-pod recovery).

Chart 0.1.1.

@youngjeong46 youngjeong46 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@youngjeong46
youngjeong46 merged commit 0c88be2 into main Aug 20, 2026
1 check passed
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.

2 participants