Skip to content

[Bugfix] Allocate dynamic HCCL listener ports on v0.3.14 - #14

Merged
ShuweiShen772 merged 1 commit into
v0.3.14_xllm_patchfrom
fix/dynamic-hccl-listener-port-v0314
Nov 13, 2026
Merged

ShuweiShen772 merged 1 commit into
v0.3.14_xllm_patchfrom
fix/dynamic-hccl-listener-port-v0314

Conversation

@ShuweiShen772

Copy link
Copy Markdown
Collaborator

Description

按版本升级计划,将 PR #13 的动态设备端口修复移植到 v0.3.14_xllm_patch。

基线:ff3258bbd3051c212653d75850a4e3e0f43808e4。

修复旧 Ascend/HCCL 后端固定监听 16666,导致共享测试机上的并行 PR 相互冲突的问题:

  • NIC 使用端口 0 进行实际 HCCL Listen,由监听操作分配可用端口,成功后读取 GetLocalPort()。
  • VNIC 使用同一个实际端口;两个监听均成功后,才更新 RankInfo.devicePort,沿用现有 segment 元数据发布实际端口。
  • VNIC 端口占用时,通过 DeInit() 回滚后重新申请,最多尝试 32 次;仅监听阶段的 HCCL_E_UNAVAIL 进入端口重试。
  • 内存、参数、系统调用、设备运行时错误原样返回;回滚错误立即停止重试。
  • 新增 3 个聚焦回归,覆盖 16666 被占用、并发监听、NIC/VNIC 部分失败回滚、重试上限和非端口错误。

本 PR 与 #13 分别面向 0.14 和 0.12 版本分支,保留两条版本的独立合入路径;与 deferred cleanup PR #11、HCCL retirement PR #10 的代码修改相互独立。

配套 xllm 动态测试端口适配:https://coding.jd.com/xLLM_AI/xllm/merges/807 。按约定,在 Mooncake GitHub 合入并同步 GitCode 后补充 xllm 依赖指针。

Suggested Merge Priority

  • P2 — 共享测试机上的并发端口冲突修复

Module

  • Transfer Engine (mooncake-transfer-engine)

Type of Change

  • Bug fix

How Has This Been Tested?

在 0.14 工作树重新编译和运行:

  1. hccl_device_listener_test:3 项,通过。
  2. 联跑 xllm 主机端口回归:8 项,通过;合计 11 项。
  3. 两个测试二进制并行运行 32 个进程,每个重复 20 轮,共 3520 次用例执行全部通过。
  4. 同组 ASan/UBSan,ASAN_OPTIONS=detect_leaks=1:halt_on_error=1、UBSAN_OPTIONS=halt_on_error=1,全部通过。
  5. clang-format 20.1.6、限定文件的 pre-commit 和 git diff --check,通过。

测试直接调用本 PR 的生产端口选择 helper,使用真实 POSIX bind/listen 和 SDK HCCL 状态枚举;Socket 边界以两组 loopback 地址模拟 NIC/VNIC。真实 NPU 设备监听和完整 legacy 后端构建由对应硬件 CI 验收。

Test results:

  • Unit tests pass
  • Integration tests pass (hardware CI)

Checklist

  • 提交含 DCO Signed-off-by
  • 已自查改动
  • 已执行 staged 格式脚本及限定文件 pre-commit
  • 已添加并通过聚焦回归
  • 人工逐行评审及真实 NPU CI 验收

AI Assistance Disclosure

  • AI tools were used: Codex 用于版本移植、回归验证和 PR 准备。

Signed-off-by: ShuweiShen772 <shenshuwei.3@jd.com>
@ShuweiShen772
ShuweiShen772 marked this pull request as ready for review November 13, 2026 12:46
@ShuweiShen772
ShuweiShen772 merged commit 57a42b2 into v0.3.14_xllm_patch Nov 13, 2026
@ShuweiShen772
ShuweiShen772 deleted the fix/dynamic-hccl-listener-port-v0314 branch November 13, 2026 12:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant