Skip to content

[Bugfix][MRV2] Read routed experts from unkeyed full blocks - #65667

Open
chenjr97 wants to merge 1 commit into
vllm-project:mainfrom
chenjr97:fix/r3-unkeyed-block-read
Open

chenjr97 wants to merge 1 commit into
vllm-project:mainfrom
chenjr97:fix/r3-unkeyed-block-read

Conversation

@chenjr97

@chenjr97 chenjr97 commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Overview

Fix routed-expert output reconstruction when a complete block is still waiting for its hash under EAGLE/MTP lookahead hashing. Include these request-local pending blocks when returning routing rows alongside a cached prefix.

Related: [#61589 — Lookahead block hashes for EAGLE prefix caching](#61589).

Claims

  • Prevent assertion failures when requested routing rows span published blocks, unkeyed full blocks, and an incomplete tail.
  • Preserve token order and return owned data that remains valid after buffer reuse.
  • Add buffer, worker, and LLM regression coverage, and select the EAGLE regression in existing speculative-decoding CI jobs when auxiliary-output connector files change.

Validation

.venv/bin/python -m pytest \
  tests/distributed/aux_output_connector/test_store.py -q

Result: 81 passed

Details

EAGLE/MTP lookahead hashing can delay a full block's hash until subsequent tokens are known. Its routing rows remain in pending_blocks, but the previous read path only consulted the incomplete tail. Reconstructing output after a prefix-cache hit could therefore trigger missing-request or unavailable-range assertions.

Pass the request's pending blocks into RoutedExpertsBuffer.read() and assemble the requested interval from pending blocks and the tail. Preserve complete-range validation and return an independent array so buffer reuse cannot overwrite returned rows. Pending blocks remain available for normal publication when their hashes arrive.

Pull Request Checklist
  • I used vLLM's /pr-checklist skill. (Mandatory for agents, optional for humans).
  • AI assistance was used during the creation of this PR.
  • Design Fit: Minimizes impact on core components, reuses existing functionality, and justifies added complexity.
  • Testing and Validation: Validates the change and ensures any added tests are meaningful and reliable, with CI coverage or documented CI resource constraints and validation performed outside CI.
  • Code Quality and Style: Keeps code and comments clear and concise, and updates relevant documentation and examples.
  • [] Pull Request Contents: Includes a brief summary and relevant links, supports claims with evidence, explains root causes and implementation trade-offs, and follows the contributing guide.

BEFORE SUBMITTING, PLEASE READ https://docs.vllm.ai/en/latest/contributing (anything written below this line will be removed by GitHub Actions)

Signed-off-by: chenjr97 <chenjr97@mail2.sysu.edu.cn>
@chenjr97
chenjr97 requested a review from a team November 4, 2026 13:29

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@mergify mergify Bot added ci/build speculative-decoding mrv2 Model Runner V2 specific bug Something isn't working labels Nov 4, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working ci/build mrv2 Model Runner V2 specific speculative-decoding

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant