test(vllm): cover native sidecar NIXL prefill/decode handoff - #14659
Closed
alec-flowers wants to merge 1 commit into
Closed
alec-flowers wants to merge 1 commit into
alec-flowers wants to merge 1 commit into
Conversation
Exercise the bundled vllm-rs receiver with a cold multi-block prompt and fail-on-KV-load-error policy, asserting generation completes with the requested token count. Reuse the existing managed serve harness and support wheel-based launcher entrypoints. Co-authored-by: Codex <noreply@openai.com> Signed-off-by: Alec Flowers <aflowers@nvidia.com>
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.
Overview:
Add a native vLLM sidecar P/D regression that catches broken NIXL metadata at the real gRPC receiver. Existing mocked sidecar tests and in-process serve tests do not execute that boundary.
Details:
The test launches separate Qwen3-0.6B prefill/decode engines on one GPU, sends a cold prompt spanning multiple KV blocks, and requires eight completion tokens with finish reason
length. KV load failures usefailso recomputation cannot hide a broken transfer. It reuses the serve harness, isolated ports, inherited GPU assignment, and process cleanup.The launcher accepts the bundled Rust binary path and uses the Python module entrypoint supplied by Dynamo wheels. The test runs in the post-merge GPU lane with an 8 GiB budget (~5.7 GiB observed locally).
Validation:
TypeError: 'float' object cannot be interpreted as an integeratrange(remote_pp_size). The HTTP response is 200 with zero completion tokens, which the test rejects.python3 -m pytest tests/serve/test_vllm.py::test_native_sidecar_prefill_decode_handoff --models-dir /cache/huggingface -vWhere should the reviewer start?
tests/serve/test_vllm.py::test_native_sidecar_prefill_decode_handoff.Related Issues
AI assistance was used to implement and validate this draft.