Skip to content

fix(garm): keep GitHub-queued waiters through assigned TTL - #408

Merged
rldyourmnd merged 1 commit into
mainfrom
fix/never-started-queue-refill
Sep 6, 2026
Merged

fix(garm): keep GitHub-queued waiters through assigned TTL#408
rldyourmnd merged 1 commit into
mainfrom
fix/never-started-queue-refill

Conversation

@rldyourmnd

Copy link
Copy Markdown
Contributor

Summary

GitHub-queued jobs on nddev-linux-release and nddev-priority-integration were starved after 600s: the assigned token was deleted, later jobs on the same label ran, and a job-keyed capacity refusal opened a 24-hour create circuit. This keeps the waiter represented and retries capacity as backpressure.

Fixes #406
Fixes #407

What changed

  • Expired never-started assigned intents demote to queued instead of disappearing, preserving QueueTime / FirstQueuedAt.
  • Never-started queued intents refresh TTL until the 24-hour execution horizon (authoritative removal still drops them).
  • FIFO orders by FirstQueuedAt so reconciliation cannot move a waiter behind a later job by rewriting QueueTime.
  • Job-keyed capacity refusals never open TerminalUntil. They use the same backoff and delete-wake as instance-keyed capacity.
  • GARM v0.2.1-nddev.90 (8d55695cad2265d0cb2ad8dfaf9d49b88f61b3a9bef54539b7684c926145bf64).

Verification

  • Overlay tests on patched GARM v0.2.1 (including the new skip/refill and job-capacity cases): go test ./workers/scaleset ./workers/provider
  • make build-garm-derivative twice: tests green, reproducible binary digest matches the manifest
  • make verify (fmt, vet, race, controller-release manifest, build)

Out of scope

  • Estate pin and GARM .90 host apply wait for this PR to merge
  • Do not cancel queued Almaty jobs
  • Do not shrink the 8 GiB class
  • almaty-libraries #1175 / #1176 are application issues, not this skip/refill class

Never-started assigned intents demote to queued instead of disappearing
after 600s, so a still-queued GitHub job cannot lose its journal slot
to a later UUID on the same label. Queued waiters refresh until the
24-hour execution horizon. FIFO follows FirstQueuedAt when
reconciliation rewrites QueueTime. Job-keyed capacity refusals are
cluster backpressure and no longer open a 24-hour create circuit.

This is GARM v0.2.1-nddev.90.

Fixes #406
Fixes #407
@rldyourmnd
rldyourmnd merged commit 9bd24d9 into main Sep 6, 2026
10 checks passed
@rldyourmnd
rldyourmnd deleted the fix/never-started-queue-refill branch September 6, 2026 10:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant