已合并
EI0005 optimize #5170
liuwanke152创建于 9月9日
EI0005 optimize #5170
已合并
liuwanke152创建于 9月9日
liuwanke152
9月9日

描述

errorMsg EI0005描述语义不清晰,优化EI0005描述并增加solution建议

变更类型

请选择本次引入的变更类型:

关联的Issue

测试

构造EI0005异常,打印内容符合预期

补充的UT用例:

文档更新

合入检查

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 liuwanke152 的贡献)
Lliuwanke152
9月9日 创建了 pull request,commit f5a161e5
atomgit-bot
atomgit-bot
9月9日 评论:

变更摘要

本 PR 主要针对 HCCL 集群通信参数不一致错误码 EI0005 的上报进行优化:统一调整了 EI0005 的报错文案与参数列表(移除 group 字段),并同步修改了多个调用 RPT_INPUT_ERR 上报 EI0005 的调用点;同时为 error_code.cc 中多个错误码的 Solution 补充了指向昇腾官方文档的排查指引链接。此外还顺带调整了设备异常检测消息中设备列表的拼接格式。

主要改动

  • EI0005 错误码定义与文案优化(error_code.cc):将 EI0005 的 ErrMessage 由 "The arguments for collective communication are inconsistent between ranks, operator %s, group %s, parameter %s, local rank %s, remote rank %s." 修改为 "The parameters of operator %s are inconsistent between ranks, parameter %s is %s on the local rank and %s on the remote rank.",Arglist 由 ccl_op, group, para_name, local_para, remote_para 精简为 ccl_op, para_name, local_para, remote_para(移除 group),并在 Solution 中补充按关键词 EI0005 在 hiascend.com 文档检索的排查指引。

  • 各上报点同步移除 group 参数:rank_consistentcy_checker.cc 的 ReportCommonError、transport_heterog.cc 的 CheckConsistentFrame(HcomBatchGet 的 ranktable CRC 校验)、rank_consistency_checker_v2.cc 的 CompareCrcArrayV2 以及 coll_operator_check.cc 的 ReportOpCheckFailed(两处重载)均将 RPT_INPUT_ERR 的 arglist 由 5 项调整为 4 项,并删除对应传入的 group/identifier/optag 取值,与新错误码定义保持一致。

  • heartbeat.cc 上报格式调整:CheckOpInconsistentError 中 EI0005 上报的 arglist 与取值顺序改为重复使用 para_name(para_name, ccl_op, para_name, local_para, para_name, remote_para),以配合新的参数校验值说明方式。

  • 多错误码补充官方文档排查指引(error_code.cc):为 EI0011、EI0012、EI0013、EI0015、EI0019 的 Solution 统一追加 "For detailed troubleshooting guidance, search for the keyword ... on https://www.hiascend.com/document/." 的指引内容。

  • 设备列表消息格式调整(detect_connect_anomalies.cc 的 BuildGroupedDetectMessage):移除设备列表字符串拼接时首尾的 [、] 方括号,仅保留以逗号分隔的设备序号输出。

likedislike
不准确?
atomgit-bot
atomgit-bot
9月9日 评论:

代码审查

审查结论

变更文件逐项复核

  1. src/legacy/ascend910/common/error_code/error_code.cc — EI0005 模板从 5 参数改为 4 参数(ccl_op,para_name,local_para,remote_para),各 Solution 文案追加排障指引链接,JSON 格式合法。模板与其余调用点匹配。无问题。

  2. src/legacy/ascend910/common/health/rank_consistentcy_checker.cc — ReportCommonError 的 EI0005 上报已正确改为 4 key + 4 value,与模板一致。无问题。

  3. src/legacy/ascend910/framework/cluster_maintenance/detect/detect_connect_anomalies/detect_connect_anomalies.cc — BuildGroupedDetectMessage 仅移除 deviceList 两侧的 [/],输出只用于日志/消息展示,无解析方依赖。无问题。

  4. src/legacy/ascend910/framework/cluster_maintenance/health/heartbeat/heartbeat.cc — 存在问题(P1):CheckOpInconsistentError 的 EI0005 上报改成了 6 个 key/value,para_name 重复 3 次、顺序错乱,与新的 4 占位符模板及全部兄弟调用点不一致,触发上报时内容错位(ccl_op 位置填入不一致类型字符串、para_name 填入算子名),上报的故障信息失真。

  5. src/legacy/ascend910/platform/resource/transport/heterog/transport_heterog.cc — CheckConsistentFrame 的 EI0005 上报已正确改为 4 key + 4 value(ccl_op=HcomBatchGet、para_name=ranktable CRC)。无问题。

  6. src/legacy/ascend950/framework/communicator/rank_consistency_checker_v2.cc — CompareCrcArrayV2 的 EI0005 上报已正确改为 4 key + 4 value。无问题。

  7. src/legacy/ascend950/service/collective/coll_operator_check.cc — ReportOpCheckFailed 两个重载的 EI0005 上报均已正确改为 4 key + 4 value。无问题。

发现统计

  • P0:0
  • P1:1(heartbeat.cc 2107-2110 EI0005 上报 key/value 向量改坏,参数个数/顺序/内容与模板不匹配)
  • P2:0
  • P3:0

总体风险评估

本 PR 的核心意图是统一 EI0005 故障码的消息模板与各调用点的参数结构(移除 group 参数)。除 heartbeat.cc 外,其余改动与模板严格一致。heartbeat.cc 的改动是一个明显的手工编辑错误:key 列表中出现 3 次重复的 para_name、参数数量为 6 而模板只有 4 个占位符,且 value 与 key 的对应关系错位。该路径虽然只在检测到不一致算子时触发,但一旦触发,EI0005 上报内容即失真,直接抵消本 PR 的修复目的,建议合入前修正。整体风险可控,但该处须修复。

类型 数量
🔴 阻塞 1
🟡 建议 0

⛔ 需要修改

likedislike
不准确?
CANN-robotCANN-robot成员
9月9日 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
9月9日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here.
You can get sig-info at here.
You can self-configure the PR merge rules for this repository. For more details, please refer to Here.
For more, you also can visit HICANN.


PR Approval Progress

✅ Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
docs ✅ 林叶峰, 臧燕 (2/2) ✅ 臧燕 (1/1)
repo-cann/hcomm ✅ 丁炜秦, 林叶峰, 陈浩 (3/2) ✅ 陈浩, 丁炜秦 (2/1)
src/legacy/ascend910/common ✅ 陈浩, 林叶峰 (2/2) ✅ 陈浩 (1/1)
src/legacy/ascend910/common/error_code/error_code.cc ✅ 叶成美, 林叶峰 (2/2) ✅ 叶成美 (1/1)
src/legacy/ascend910/framework ✅ 丁炜秦, 陈浩, 林叶峰 (3/2) ✅ 丁炜秦, 陈浩 (2/1)
src/legacy/ascend910/platform ✅ 林叶峰, 陈浩 (2/2) ✅ 陈浩 (1/1)
src/legacy/ascend950/framework ✅ 丁炜秦, 林叶峰 (2/2) ✅ 丁炜秦 (1/1)
test ✅ 陈浩, 丁炜秦, 林叶峰 (3/2) ✅ 陈浩, 丁炜秦 (2/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

liuwanke152, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
此处折叠了92条消息 查看更多
57_Viking
57_Viking成员
9月10日 评论:

/approve

likedislike
CANN-robotCANN-robot成员
9月10日 添加了label:lgtmapproved
CANN-robot
CANN-robot成员
9月10日 评论:

The MR can not be merged, because of CodeReview discussion not resolved

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike
黄建波黄建波成员
9月10日 解决了最后一个问题
CANN-robotCANN-robot成员
9月10日 合入了pull request