Skip to content

docs(claude): teach bodhi-compute to size walltime around maintenance windows - #9

Merged
jayhesselberth merged 1 commit into
mainfrom
worktree-maint-reservations
Aug 26, 2026
Merged

jayhesselberth merged 1 commit into
mainfrom
worktree-maint-reservations

Conversation

@jayhesselberth

Copy link
Copy Markdown
Member

Bodhi takes a maintenance reservation about once a month, and it carries
ALL_NODES — there is nowhere on the cluster to run during the window.

The failure mode is quiet, which is what makes it worth writing down. A job
asking for more walltime than remains before the start is not rejected — it is
deferred to after the window.
The job queues, looks entirely normal, and the
cost only shows up if someone checks.

Measured live, against a window 21h49m out:

$ srun --test-only -p rna -c 4 --mem 8G -t 21:00:00 -- true
srun: Job 245072 to start at 2026-08-26T08:10:20 ...      # starts now

$ srun --test-only -p rna -c 4 --mem 8G -t 22:00:00 -- true
srun: Job 245073 to start at 2026-08-28T06:00:00 ...      # +46 hours

One extra hour of requested walltime bought two days of waiting.

What the section covers

  • Reading scontrol show reservation — what State=INACTIVE/ACTIVE,
    Users=root and ALL_NODES each mean for you.

  • A snippet that prints how long until the window starts. It was extracted
    back out of the finished skill and run verbatim to confirm it works as
    published: monthly-maint starts in 21h47m.

  • srun --test-only as the cheap confirmation either way.

  • Recognising the aftermath in squeue. Two real jobs were sitting in exactly
    that state while this was written, both having asked for three days with the
    window a day out:

    243393  krausmeg  3-00:00:00  ReqNodeNotAvail, Reserved for maintenance
    

    That state is not stuck and does not want resubmitting — shortening -t is
    what makes it run sooner.

  • IGNORE_JOBS means jobs already running when the reservation was created
    are not killed up front, but nothing survives the window itself —
    sinteractive sessions included. Launch a session to end before the start
    rather than reach past it.

Also

slurm-discovery gains the matching squeue reason row, and a note that
reservations are weather, not structure: they recur monthly but each one
carries a date, so they are read live and never written to the cached map,
where a stale window is exactly the sort of thing that would get trusted.

Every command, boundary and output here was measured against Bodhi rather than
recalled. All four validate.yml gates pass locally, and every skill's
frontmatter still parses with a name: matching its directory.

🤖 Generated with Claude Code

… windows

Bodhi takes a maintenance reservation about once a month and it carries
ALL_NODES, so there is nowhere on the cluster to run during the window. The
failure mode is quiet, which is what makes it worth writing down: a job asking
for more walltime than remains before the start is not rejected, it is
deferred to after the window. The job queues, looks entirely normal, and the
cost shows up only if someone checks.

Measured against a window 21h49m out, -t 21:00:00 started immediately and
-t 22:00:00 was pushed to the reservation's end time. One extra hour of
requested walltime bought two days of waiting.

The section covers reading scontrol show reservation, computing the gap,
confirming with srun --test-only, and recognising the aftermath in squeue.
Two real jobs were sitting in exactly that state while this was written,
both having asked for three days with the window a day out:

  243393  krausmeg  3-00:00:00  ReqNodeNotAvail, Reserved for maintenance

That state is not stuck and does not want resubmitting; shortening -t is what
makes it run sooner. IGNORE_JOBS means jobs already running when the
reservation was created are not killed up front, but nothing survives the
window itself — sinteractive sessions included, so a session should be
launched to end before the start rather than reach past it.

slurm-discovery gains the matching reason row, and a note that reservations
are weather rather than structure: they recur monthly but each one carries a
date, so they are read live and never written to the cached map, where a stale
window is exactly the sort of thing that would get trusted.

Every command, boundary and output here was measured against Bodhi. The gap
snippet was extracted back out of the finished skill and run verbatim.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jayhesselberth
jayhesselberth merged commit 9aa3481 into main Aug 26, 2026
1 check passed
@jayhesselberth
jayhesselberth deleted the worktree-maint-reservations branch August 26, 2026 14:39
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