已关闭
[Bug-Report|缺陷反馈] EI0020端口冲突处置指引未区分初始化路线,rank table路线配置HCCL_NPU_SOCKET_PORT_RANGE不生效 #987
ren-mengguang创建于  8 天前关闭于  7 天前
ren-mengguang成员
8 天前 创建

问题描述

单卡多进程场景(同一Device拉起多个业务进程)下,device侧监听端口bind冲突触发EI0020(Failed to enable listening for the NPU network adapter socket)。当前处置指引存在三个问题:

  1. 指引未区分初始化路线:现有建议"配置HCCL_NPU_SOCKET_PORT_RANGE"仅对rootInfo方式初始化生效(rank_info_detect_client.cc:215 → socket_manager.cc:223 ServerInitAll → PreemptPortManager在范围内抢占端口并回填分发);rank table文件方式初始化无端口抢占逻辑,该环境变量不生效(仅影响my_rank.cc:417、socket_manager.cc:482两处fallback取值),用户按指引操作无法解决问题。
  2. 正确处置方法无文档承载:rank table路线需在每个进程使用的rank table文件中为同一device_ip的rank配置互不相同的device_port/host_port,该约束未在任何文档中说明。
  3. 默认端口16666静默填充:rank table缺省device_port/host_port字段时,GetJsonPropertyUInt(required=false)静默返回DEFAULT_VALUE_TCPPORT(16666),日志无痕迹,冲突时无法溯源端口来源。(暂缓,后续单独跟进)

期望

  1. EI0020中英文错误码文档按初始化路线区分处置方法;
  2. error_code.cc注册表Solution同步修正(对齐仓内EI0002/EI0005惯例:简短建议+关键字检索引导),保证错误管理框架通道与文档一致;
  3. 可选字段缺省使用默认值时补充INFO日志,便于溯源。(暂缓,后续单独跟进)
likedislike
Rren-mengguang成员
8 天前 关联了pull request:[fix] 修正EI0020端口冲突处置指引并补充缺省端口溯源日志 (#987)
Rren-mengguang成员
8 天前 将 ren-mengguang 设为负责人
Rren-mengguang成员
8 天前 修改了issue 的描述
Leewis成员
8 天前 评论:

问题确认结果:上述三个问题均属实,感谢反馈。

结合源码确认:

  1. 指引未区分初始化路线:端口抢占仅存在于 rootInfo 初始化路线(rank_info_detect_client.cc:215 → socket_manager.cc:223 ServerInitAll → PreemptPortManager 在 HCCL_NPU_SOCKET_PORT_RANGE 范围内抢占并回填分发);rank table 文件方式初始化无端口抢占逻辑,该环境变量仅在 my_rank.cc:417、socket_manager.cc:482 两处作为两级端口表未命中时的 fallback 取值,正常路径查表命中时配置不生效,现有处置指引对该路线无效。
  2. 正确处置方法无文档承载:rank table 路线单卡多进程场景,需在各进程使用的 rank table 文件中为同一 device_ip 的 rank 配置互不相同的 device_port/host_port(缺省时静默使用默认端口 16666,两进程 bind 冲突触发 EI0020),该约束当前未在任何文档中说明。
  3. 默认端口静默填充:new_rank_info.cc 中 GetJsonPropertyUInt(..., required=false) 缺省时静默返回 16666,且会种子到所有 rank addr 的 socketPort_,日志无痕迹,冲突时无法溯源。

拟整改方案:

  1. EI0020 中英文错误码文档按初始化路线区分处置方法(rootInfo 路线:配置 HCCL_NPU_SOCKET_PORT_RANGE;rank table 路线:各进程 rank table 中为同一 device_ip 的 rank 配置互不相同的 device_port/host_port);
  2. error_code.cc 注册表 Solution 同步修正,并按仓内 EI0002/EI0005 惯例补充关键字检索引导,保证错误管理框架通道与文档一致;
  3. 可选字段缺省使用默认值时补充 INFO 日志,便于溯源。

本回复为AI结合源码深度分析生成,将同步对应责任田团队进行二次确认。

likedislike
Rren-mengguang成员
8 天前 关联了pull request:[fix] 修正EI0020端口冲突处置指引 (#987)
Leewis成员
7 天前 评论:

https://gitcode.com/cann/hcomm/pull/5725 master分支已修改上库;

likedislike
LLeewis成员
7 天前 issue状态由 进行中 改变为 已完成
LLeewis成员
7 天前 关闭了 issue
CANN-robotCANN-robot成员
7 天前 添加了label:resolved