Reproduce backfiller starvation above shared capacity - #51
chaptersix wants to merge 2 commits into
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 13bf411727
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if remaining == 0 { | ||
| break | ||
| } | ||
| require.Positive(t, buffered, "seed=capacity-%d: empty buffer and %d ranges must make progress", count, remaining) |
There was a problem hiding this comment.
Fire the initial backfiller tasks before asserting progress
On the first loop iteration, both preceding updateScheduler calls only commit component mutations; they do not execute the immediate pure tasks created by NewRangeBackfiller. Consequently buffered is still zero and remaining is still count, so this assertion fails even for the always-enabled 450-range control. The first FirePureTasks call is below the assertion and is therefore unreachable; fire the initial tasks before the first drain/check.
Useful? React with 👍 / 👎.
At default limits, 451 or more concurrent range backfillers divide positive shared capacity down to zero and all stall indefinitely. Adds a deterministic component-engine counterexample and a passing 450-range native control, with repeated draining and request-identity/budget assertions.
Evidence: report and sequence diagram, scrubbed failure image. Known failures require
TEMPORAL_RUN_MIGRATION_COUNTEREXAMPLES=1.Validation: native control passes; 451/1000 counterexamples fail as expected. The following fix layer passes scheduler package tests, V1 scheduler/replay tests, and
make lint-code-fast. No matching upstream capacity fix found in the public open-PR audit.