fix(garm): confirm dispatch demand and retain terminal completion - #428
Merged
Conversation
Signed-off-by: rldyourmnd <danil@nddev.it.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Retained queue assignments could create idle JIT runners after GitHub no longer assigned work to that scale set. Confirm current scale-set demand before each registration, bounded by local admission and MaxRunners. A stale persisted zero now triggers an authoritative read; a fresh zero or unknown result retains existing jobs and workers without allocating. Reads have a five-second deadline and thirty-second refusal/error backoff.
A fast direct-JIT job can also start and complete in one message batch. Completion now wins, preserves its terminal receipt, and cannot leave a running allocation behind. Older terminal records are excluded from capacity. No journal schema change, cancellation, runner deletion, admission-limit change or runtime deployment is included.
Validation: the new fast-completion regression failed on the previous implementation and passes with the fix; the full scale-set suite passes.
make verifypasses. The complete patched upstream suite passed with-race -tags testingin the pinned Go 1.26.6 container, with no network during tests/build. Two builds with independent caches produced the same.92executable SHA-256:c112777344debf7e9c0b82524b6de381872ff6576e700cc4c4469b136770b560; maximum required glibc is 2.34. Generated build manifest/script and portable deployment examples agree. Runtime adoption and exact queued-job recovery remain separate private acceptance.Closes #427.