Repository navigation
Reduce scheduler contention after lost assignments - #2954
Merged
MarcusSorealheis merged 3 commits intoOct 18, 2026
Merged
MarcusSorealheis merged 3 commits into
MarcusSorealheis merged 3 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
amankrx
approved these changes
Oct 18, 2026
This branch was successfully deployed
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.
What and why
When schedulers race to assign the same queued action, the loser currently keeps competing for every following action with the same platform properties. After a lost assignment, this change skips that property shape for the remainder of the pass, including parked actions revisited when capacity opens. Other shapes remain eligible, and the next pass considers all shapes again.
Diagnostic logging now samples up to five oldest queued actions from the matcher's existing listing, removing the additional queued and executing database listings. Matching diagnostics remain disabled by default. The platform-properties documentation describes the new behavior.
The executing sweep, running-operation reports, and default logging change already landed in #2923, #2925, and #2924. This preserves their reviewed decisions: lost results consume a retry, and worker keepalives do not extend the execution ceiling. Reliable result resends require an acknowledgment protocol and are outside this change.
How was this verified?
cargo test -p nativelink-scheduler --locked: 246 passed, 1 ignored on macOS.cargo clippy -p nativelink-scheduler --test simple_scheduler_test --locked -- -D warningspassed.Bazel and live-cluster validation were not run.
Risk
A contested property shape may wait for the next matching pass while local capacity is available. If fallback matching is disabled, that pass needs a task or worker notification. No retry budget, worker reservation size, or persistent state changes. Diagnostic consumers should account for the new
Oldest actions in the matching passmessage, which samples queued actions rather than logging a separate executing list.AI assistance
Automated assistance was used to draft the changes and run the listed checks.
This change is