Repository navigation
[Bugfix][EC Connector] Allocate producer control ports at startup - #61764
Conversation
|
Documentation preview: https://vllm--61764.org.readthedocs.build/en/61764/ |
|
Documentation preview: https://vllm--61764.org.readthedocs.build/en/61764/ |
Bind each EC producer ROUTER socket to an OS-assigned port and advertise the actual endpoint. Keep NIXL peer identities local to each instance and DP rank. Signed-off-by: Tianyu Guo <guoty@inferact.ai>
Remove the EC-specific host environment variable and use get_ip() with the existing VLLM_HOST_IP override. Signed-off-by: Tianyu Guo <guoty@inferact.ai>
397e1e1 to
a14af0c
Compare
|
Thanks @gty111 , that's a real bug.
host = envs.VLLM_EC_SIDE_CHANNEL_HOST
|
Assisted-by: OpenAI Codex <codex@openai.com> Signed-off-by: Tianyu Guo <guoty@inferact.ai>
|
LGTM. Thanks @gty111 |
|
This pull request has merge conflicts that must be resolved before it can be |
Assisted-by: OpenAI Codex <codex@openai.com> Signed-off-by: Tianyu Guo <guoty@inferact.ai>
|
/ci run |
|
✅ Triggered Buildkite CI #99036 for commit ℹ️ This PR is 1 commit behind upstream |
Overview
Avoid NIXL EC producer control-port collisions when multiple instances or DP replicas share a host, while retaining explicit endpoint configuration.
Claims
ec_transfer_params.peer_port.VLLM_EC_SIDE_CHANNEL_HOSTandVLLM_EC_SIDE_CHANNEL_PORToverrides. A nonzero port usesbase_port + data_parallel_index;0remains automatic.ec_transfer_config.engine_idin the NIXL agent name and append the DP index to distinguish replicas.Validation
Transport and configuration validation
.venv/bin/python -m pytest tests/v1/ec_connector/unit/test_{control,data,session,scheduler_nixl_ctor,scheduler_nixl_producer,scheduler_nixl_consumer}.py -q112 passed, including real ZMQ request/reply and NIXL peer registration. The updated tests reproduce ignored endpoint overrides and engine IDs before the fix. GPU serving was not rerun for this revision.
Details
Bind port
0directly on the serving socket and readLAST_ENDPOINT, avoiding a separate port-reservation race. The host defaults toget_ip()(honoringVLLM_HOST_IP); setVLLM_EC_SIDE_CHANNEL_HOST=localhostfor loopback-only binding. Wildcard addresses are rejected because peers need a reachable address.Fixed-port conflicts fail startup rather than silently choosing another port. Independent instances using fixed ports must use non-overlapping ranges; consumers use the advertised endpoint without matching port configuration.
No equivalent open fix was found in the EC control-port search.
Pull Request Checklist
/pr-checklistskill. (Mandatory for agents, optional for humans).