Skip to content

test(vllm): cover native sidecar NIXL prefill/decode handoff - #14659

Closed
alec-flowers wants to merge 1 commit into
mainfrom
agent/vllm-sidecar-native-pd-regression
Closed

alec-flowers wants to merge 1 commit into
mainfrom
agent/vllm-sidecar-native-pd-regression

Conversation

@alec-flowers

@alec-flowers alec-flowers commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

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 use fail so 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:

  • Stock vLLM 0.29.0: test fails; NIXL raises TypeError: 'float' object cannot be interpreted as an integer at range(remote_pp_size). The HTTP response is 200 with zero completion tokens, which the test rejects.
  • Dynamo's current vLLM 0.28.0 pin: test passes (110 seconds).
  • Same stack with only the Rust integer-conversion backport: test passes with eight completion tokens.
  • Stack: Dynamo 1.5.0.dev20260910, NIXL 1.3.2, RTX 6000 Ada.
  • python3 -m pytest tests/serve/test_vllm.py::test_native_sidecar_prefill_decode_handoff --models-dir /cache/huggingface -v
  • All applicable commit hooks pass, including Black/isort/flake8/ruff, codespell, whitespace, full pytest marker validation, and AGENTS/CLAUDE pairing; shell syntax also passes.

Where should the reviewer start?

tests/serve/test_vllm.py::test_native_sidecar_prefill_decode_handoff.

Related Issues

  • Confirmed — no related issue.
  • Upstream release backport: vLLM #56348. vLLM main already contains the fix from #54814.

AI assistance was used to implement and validate this draft.

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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant