Skip to content

Let bounded admission use recovered capacity - #57

Merged
nybarius merged 2 commits into
mainfrom
work/admission-owned-capacity-20261019
Oct 20, 2026
Merged

nybarius merged 2 commits into
mainfrom
work/admission-owned-capacity-20261019

Conversation

@nybarius

Copy link
Copy Markdown
Owner

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 blob dde8327df42a56b6b99ef4ed72146d971f6e9fac then passed the focused owned-slot, capacity, refill, and watch-reload tests, the original make test, and make proofs. Original test files and candidate source remained unchanged during those checks.

make docker was 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 complete make check PASS.

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.

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.
@nybarius
nybarius merged commit d5ef9cb into main Oct 20, 2026
8 checks passed
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