Conversation
1870c89 to
094e542
Compare
094e542 to
05c9395
Compare
05c9395 to
26bbe1c
Compare
26bbe1c to
fdfc9ed
Compare
fdfc9ed to
65893f4
Compare
65893f4 to
7bf6562
Compare
The one-server-per-endpoint, multi-node DEP8 hybrid pool, and NIXL P/D worker tests restated assertions that test_vllm_router_frontend.py and the existing DP tests already make. Keep the MoRI-IO and device-binding cases, which exercise logic this branch adds, and update the latter to the set_visible_devices field name introduced by the runtime branch. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
7368036 to
9935d90
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 9935d90. Configure here.
| "read_mode": True, | ||
| }, | ||
| } | ||
| ) |
There was a problem hiding this comment.
MoRI workers share default control ports
High Severity
Managed MoRIIOConnector JSON omits per-worker handshake_port and notify_port, so every engine falls back to the same defaults. Co-located workers, including multiple endpoints on one node, then collide on those listeners and on engine_id.
Reviewed by Cursor Bugbot for commit 9935d90. Configure here.


Summary
Integrate native vLLM Router with MoRI-IO prefill/decode workers. Static router registration and NIXL port handling do not describe MoRI's ZMQ discovery path; this PR supplies the connector-specific launch and readiness behavior.
Stacked on #1, which combines AMD hardware enablement and required cluster runtime. #7 follows this PR; ATOM uses Mooncake and has no engine dependency on MoRI.
Review map
backends/vllm.py: generate role-awareMoRIIOConnectorJSON from allocated addresses and ports; preserve upstream ephemeral port allocation for TP children instead of injecting a sharedVLLM_PORTscan base. Other connectors retain their existing behavior.frontends/vllm_router.py,frontends/static_router.py,ports.py: select ZMQ discovery, own its registration port, and omit static P/D URL registration for the managed MoRI path.core/health.py,cli/mixins/benchmark_stage.py: use a one-token completion probe for dynamic discovery, whose registry is not represented by Router's static/workersendpoint.core/schema.py: restrict the managed integration to a P/D layout with one router on the head node.Note
Medium Risk
Changes P/D launch, router CLI, and readiness gating for moriio deployments; misconfiguration is caught at schema validation, but end-to-end probe behavior affects when benchmarks start.
Overview
Adds managed MoRI-IO for ROCm-style vLLM prefill/decode behind
frontend.type: vllm-routerwhenengine.connector: moriio.Worker launch: srtctl builds role-aware
MoRIIOConnectorJSON (kv_producer/kv_consumer) from the head node IP, fixed discovery port36367, and each worker’s HTTP port. MoRI workers skip NIXL side-channel env and the per-processVLLM_PORTscan base so TP children don’t collide on ephemeral listeners.Router: ZMQ discovery mode passes
--kv-connector moriioand--vllm-discovery-addressand omits static--prefill/--decodeURLs. NIXL bootstrap ports are not advertised for MoRI.Readiness: Because Router’s
/workersdoesn’t reflect the MoRI registry, benchmarks wait on a one-tokenPOST /v1/completionsprobe (requiresmodel_name) instead of worker-count polling.Config validation: MoRI + vllm-router requires P/D topology,
enable_multiple_frontends: false, andorchestrator_placement: head. Docs and schema listmoriioas a connector option; tests cover KV config, health probe, port env, and device binding for vllm-router.Reviewed by Cursor Bugbot for commit 9935d90. Bugbot is set up for automated code reviews on this repo. Configure here.