Repository navigation
Let bounded admission use recovered capacity - #57
Merged
Merged
Conversation
Keep the original slow admission running while capacity rises from one to two. Require the current deferred head to reach the existing landing checks without restarting or replacing the original future.
Size the bounded executor for its configured ceiling while still submitting only into currently observed capacity. This lets a deferred current head progress without waiting for an older running admission. Keep one-shot snapshot width unchanged.
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.
Problem
A bounded admission loop creates its executor at the capacity observed on the first tick. If that observation is one slot, a slow admission keeps the executor alive at one worker even after capacity rises. Later ready work cannot use the recovered capacity until the original read finishes.
Change
Keep the bounded executor's potential worker count at the configured admission ceiling. Continue to submit only into the currently observed free slots, preserving the owned-slot limit and discovery of deferred heads at their current source and priority. Unbounded one-shot execution retains its original snapshot width.
The test-first commit adds a regression that raises capacity from one to two while the original admission remains running. It requires a deferred, changed head to reach the existing merge path, keeps the original future alive, and verifies that neither the old deferred source nor duplicate admission work ran.
Validation
An isolated run reproduced the expected progress assertion against the original runtime at test-only commit
65238bf58fa99ccd85f53da0bf72ae0b18b62b76. Candidate daemon blobdde8327df42a56b6b99ef4ed72146d971f6e9facthen passed the focused owned-slot, capacity, refill, and watch-reload tests, the originalmake test, andmake proofs. Original test files and candidate source remained unchanged during those checks.make dockerwas attempted and could not access that runner's Docker socket (permission denied). The unchanged repository CI must receive the container build and smoke test; the local result is not a completemake checkPASS.This is a separate capacity-growth defect discovered after #55 merged, continuing its existing owner branch. No scheduling rule, admission condition, gate, or proof obligation is relaxed.