vllm-project/vllm-ascend
View on GitHub[Contribution] 任务 #6:MooncakeConnector handshake 端口动态分配
Open
#10,653 opened on Jun 18, 2026
help wanted
Repository metrics
- Stars
- (2,180 stars)
- PR merge metrics
- (Avg merge 4d 5h) (559 merged PRs in 30d)
Description
在提交新问题之前,请确保您已经在社区中搜索过相关问题,并使用了社区中提供的资源/工具后,仍未找到满意的解决方式。
📚 任务问题描述
任务描述
该任务拆分自 #9079,任务 ID:#6。
当前 mooncake_connector.py 中 handshake 端口通过 handshake_port = side_channel_port + device_index 固定推导,其中 device_index = pp_rank * tp_size + tp_rank + pcp_rank * prefill_tp_size。该方式依赖静态端口范围,容易在多实例、多节点复用、残留进程、端口被占用等场景发生冲突。本任务需要将 MooncakeConnector handshake 监听端口改为动态选择可用端口,并通过 metadata/side channel/握手机制确保 P 节点和 D 节点都能拿到正确的对端端口,避免端口冲突且不影响现有 KV cache 传输功能。
验收标准
- MooncakeConnector 不再依赖固定
side_channel_port + device_index作为唯一 handshake 监听端口。 - 每个 rank 可动态选择本机可用端口,且同节点多 rank、多实例启动时不冲突。
- P 节点和 D 节点能通过 handshake metadata 或现有 side channel 正确交换并使用对端实际监听端口。
- PD 分离普通 Mooncake KV 传输功能不回退,prefill/decode 多 DP/TP 场景可正常建立连接并传输 KV cache。
- 端口申请、释放、异常清理逻辑可靠,进程异常退出后不会影响下次启动。
- 补充 UT/e2e 或最小复现用例,覆盖端口被占用、多 rank 动态分配、P/D 端口同步正确性。
对接人
@jyoung6652
认领状态
待认领
建议的替代/修复方案
请根据任务描述提交实现、测试或文档 PR,并在 PR 中关联本 issue 与 #9079;如实现过程中发现任务边界、使用指导或现有行为存在不合理之处,请同步补充说明和最小复现。
欢迎加入社区,感谢您对社区的贡献 🎉!