fix(miles): keep health checks in admission mode - #7
Open
TianyeGGBond wants to merge 1 commit into
Open
Conversation
TianyeGGBond
force-pushed
the
zhenyu/fix-router-health-admission
branch
2 times, most recently
from
May 30, 2026 03:44
7fc79f1 to
56bf34a
Compare
TianyeGGBond
force-pushed
the
zhenyu/fix-router-health-admission
branch
from
May 30, 2026 03:51
56bf34a to
4059f2a
Compare
zhenyulincs
approved these changes
Aug 2, 2026
zhenyulincs
left a comment
There was a problem hiding this comment.
Verified before approving:
- The ambiguity is real and the new predicate is the established one. The health loop was the last remaining site keying "admission active?" off
if self.enabled_workers:(set truthiness), which cannot distinguish "admission never declared" (legacy — probe the full registry) from "admission declared, scheduler disabled every worker" (the legitimate F3 zero-active suspension — probe nothing)._admission_declaredis exactly the flag the other two sites already use (miles_admission_disabledclassification and_candidate_set()), set by all four lifecycle internals, never set on legacy paths — so legacy behavior is preserved verbatim. - Provenance check: the replaced conditional was introduced by the port itself (iter-6 legacy-compat commit
f1f1e2f); iter 7 (1978e31) introduced_admission_declaredand converted the other call sites but missed this one. This PR completes that conversion — no upstream-original miles code is modified, the upstream health-loop body is untouched. - Blast radius confirmed: on the buggy path, parked/offloaded workers get probed and can be marked dead, causing
_notify_workers_changedchurn and false "Marking as DEAD" logs;_enable_worker_internalclears dead + failure counts, so it self-heals on re-admission — state pollution and noise rather than permanent quarantine. Which is also why runtime smokes never surfaced it. - Ran the test file on this head: the
TestRouterAdmissionLifecycleclass passes 4/4 including the new zero-active probe test (the other classes in the file fail only on missing torch/numpy in my slim env — unrelated to this change).
One non-blocking simplification for a follow-up (not this PR): the new inline branch duplicates _candidate_set() exactly (declared → enabled - dead, else → registry - dead), and _candidate_set's docstring already claims the health loop uses it. urls = list(self._candidate_set()) would remove the third copy of this set arithmetic and make that docstring true — and would have prevented exactly this kind of missed-conversion bug.
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.
Context
This is a narrow follow-up to the M11 router admission path.
In admission mode, an empty
enabled_workersset is a valid runtime state: the scheduler may have disabled/offloaded every registered worker, and generation requests should suspend until a worker is re-admitted.Before this change,
_health_check_loopusedif self.enabled_workersto decide whether admission mode was active. That makes an empty enabled set ambiguous:That fallback can fight the sleep/offload lifecycle because disabled workers are parked and should not be health-probed until they are re-admitted.
Change
_admission_declaredas the admission-mode switch in_health_check_loop.Validation
Passed:
python -m pytest tests/test_partial_sleep_wake.py::TestRouterAdmissionLifecycle -q # 4 passed, 1 warningPassed:
Also tried the whole file:
Local result is limited by unrelated missing heavy dependencies in this Windows environment:
ModuleNotFoundError: No module named 'ray'forTestEngineInfoStateMachineModuleNotFoundError: No module named 'torch'forTestSchedulerPreemptClassification