test: stand up the config tiers two unit tests read from - #33294
Merged
Merged
Conversation
ch-wan
requested review from
Ying1123,
hnyls2002,
merrymercy and
xiezhq-hermann
as code owners
August 2, 2026 20:34
Contributor
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
Both of these fail on main, not because of anything in this stack — they read process state that only a served engine establishes, and nothing published it. `test_mm_chunked_embedding_unit` drives the embedding path, which reads the attention-TP rank and the config. It now publishes a config and overrides the parallel tier for the duration of each test, which is what the runtime-context testing contract asks for. `test_attn_dp_request_capacity` handed the MLX runner stub a `SimpleNamespace` carrying the four fields `initialize()` used to read off the instance. Those reads went through the namespace accessors some time ago, so the stand-in stopped intercepting and the accessors raised "config namespace 'exec' not published". It publishes a real config with the same values instead; the stub still gets the published instance for its own reads. While here: `_acknowledge_deferred_cuda_ipc_cache_hits` computed `getattr(server_args, "tp_size", parallel.attn_tp_size)`. Python evaluates that default eagerly, so every call read the live attention-TP size even though `tp_size` is always present on a resolved ServerArgs — a config read that needed a process group for no reason. It reads `tp_size` directly now.
Collaborator
Author
|
Renamed the fixture to It is load-bearing: flipping |
ch-wan
force-pushed
the
cheng/gc-fix-unpublished-config-tests
branch
from
August 2, 2026 22:45
0fd339f to
f0f000d
Compare
kfhfar
pushed a commit
to kfhfar/sglang
that referenced
this pull request
Aug 7, 2026
saturn-acc
pushed a commit
to saturn-acc/sglang
that referenced
this pull request
Aug 16, 2026
jakki-amd
pushed a commit
to jakki-amd/sglang
that referenced
this pull request
Sep 9, 2026
Atituiset
pushed a commit
to Atituiset/sglang
that referenced
this pull request
Sep 10, 2026
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
Two registered tests fail on
maintoday. Both read process state that only aserved engine establishes, and nothing in the test published it:
test/registered/chunked_prefill/test_mm_chunked_embedding_unit.py— 3 of 5tests fail with
AssertionError: attention tensor model parallel group is not initialized. The embedding path reads the attention-TP rank and the config;the test set up neither.
test/registered/unit/hardware_backend/mlx/test_attn_dp_request_capacity.py—fails on the MLX runner with
ValueError: config namespace 'exec' not published. It handedMlxModelRunnerStubaSimpleNamespacecarrying the fourfields
initialize()used to read off the instance; those reads moved to thenamespace accessors, so the stand-in stopped intercepting.
Failure logs: mm,
mlx.
Fix
Both tests publish a real config instead of faking one, which is what the
runtime-context testing contract asks for — a faked accessor or a stubbed
server_argssilently stops intercepting the moment a reader migrates, which isexactly what happened here. The mm test also overrides the parallel tier
(
get_parallel().override(attn_tp_rank=0, ...)) for the duration of each test.The MLX stub still receives the published instance, so its own instance reads are
unchanged.
While here, one production line:
_acknowledge_deferred_cuda_ipc_cache_hitscomputed
getattr(server_args, "tp_size", parallel.attn_tp_size). Pythonevaluates that default eagerly, so every call read the live attention-TP size
even though
tp_sizeis always present on a resolvedServerArgs— a config readthat required a process group for no reason, and the reason the mm test tripped
the assert before reaching anything else. It reads
tp_sizedirectly now.Validation
The two test files: 5 passed + 4 skipped (MLX skips without
mlxinstalled; thefour namespace reads its stub makes were verified to resolve under the new
publish).
test/registered/unit/{multimodal,managers}plus the config ratchets:358 passed. The MLX path itself needs the MLX runner in CI.
Split out of a larger
ServerArgs.overrideburndown stack (#33242) so themain-side fix can land on its own.
CI States
Latest PR Test (Base): 🚫 Run #30770816029
Latest PR Test (Extra): ❌ Run #30770815906