test(vllm): restore KV-transfer migration coverage - #13694
Open
alec-flowers wants to merge 1 commit into
Open
Conversation
alec-flowers
force-pushed
the
codex/vllm-kv-transfer-migration
branch
from
August 23, 2026 17:10
095f735 to
45ef4dc
Compare
alec-flowers
changed the base branch from
codex/vllm-agg-migration
to
codex/vllm-decode-migration
August 23, 2026 17:10
This was referenced Aug 23, 2026
Signed-off-by: Alec Flowers <aflowers@nvidia.com>
alec-flowers
force-pushed
the
codex/vllm-kv-transfer-migration
branch
from
August 24, 2026 03:18
45ef4dc to
67068e6
Compare
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.
Summary
--kv-transfer-confignow required by vLLM 0.27.1nightlyafter no-retry pre-merge CI passesScope and traceability
The target now retains two cases:
worker-failure-chat-stream-natsgraceful-shutdown-chat-unary-tcpOn the stacked base, this changes the target from eight skipped outcomes to two executing outcomes. The module changes from 20 outcomes (12 pass / 8 skip) to 14 executing outcomes with zero function-level migration skips. The original pre-#13684 Cartesian target had 96 combinations.
Root cause and restored contract
The first forced execution failed before migration because current vLLM rejects disaggregated startup without an explicit KV connector. After configuring NIXL, the old 8K workload did transfer approximately 878.5 MB, but nearly filled the functional test's cache and failed to complete within the 350-second test timeout (377.97 seconds including teardown).
The smaller workload still transfers an 823-token prefix through NIXL and exercises the historical same-request-ID/chat-prefix path. The test now proves that the request is still in flight when the worker fault is injected, the user response completes after migration, and the frontend reports exactly one ongoing-request migration.
Profiling also exposed an independent startup race: three concurrently healthy engines did not guarantee that the frontend had observed both decode instances. The test now condition-polls
/healthuntil one prefill and two decodegenerateinstances are present; it does not add sleeps or retries.Validation
Exact image:
210086341041.dkr.ecr.us-west-2.amazonaws.com/ai-dynamo/dynamo:10d71514e9c9c1c6a1b902be4b692378e78bff8a-vllm-runtime-nightly-testAll qualification runs used the local GPU, the exact nightly image, the mounted model cache, and zero pytest/OpenAI retries.
--max-vram-gib=41 -n 1: scheduler selected both cases at 6.9 GiB / 0.31 GiB requested KV and passed 2/2 in 216.05s (128s and 88s including scheduler-managed setup/teardown)py_compile,git diff --check, isort, Black 23.1.0, flake8, codespell, Ruff, and file-integrity hooks passedThe repo-wide marker-report hook also reported this module at 14 collected tests with no missing marker sets, then failed elsewhere during full-repository collection because the local port pool was exhausted in
tests/serve; that unrelated collection failure is not hidden by a retry.Stack navigation
This PR is layer 4 and targets
codex/vllm-decode-migration. Review and merge the stack in order.