Merged
[fix] 通信域重复创建时 RPT_INPUT_ERR 补充规范报错 #4965
guanzhongkangAdd on Aug 31
[fix] 通信域重复创建时 RPT_INPUT_ERR 补充规范报错 #4965
Merged
Merged fromTrouble_Im_in/hcommmr-4924-importedintocann/hcommmaster
Pull Request has been successfully merged by CANN-robot.
(Thank you for guanzhongkang's contribution.)Aug 31 Created pull request, commit f33ea55f
atomgit-bot
Aug 31 Comments:
Aug 31 Comments:
变更摘要
本 PR 针对通信域重复创建场景修复规范报错缺失问题:此前 identifier 查重命中时仅打印 HCCL_ERROR 日志,未向错误管理器上报带错误码 EI0003 的规范报错,用户侧无法拿到结构化错误信息。改动将 op_base_v2.cc 中五个通信域创建入口的查重逻辑统一重构:先提取 commExists 布尔变量保存 hcclGroupMap.find 的结果,使 hcclGroupMap.find 只执行一次供 RPT_INPUT_ERR 上报与 CHK_PRT_RET 检查复用,消除重复查询;随后按 EI0003 模板补齐 RPT_INPUT_ERR 上报,其中 ccl_op 填实际入口函数名、value 填真实的 identifier/commId、expect 填期望值描述("not already in use"),与模板 "The expected value is %s" 语义匹配。查重不命中的正常创建流程不受影响。
主要改动
- 提取
commExists变量消除重复 find 查询: 在CreateCommConfig、CreateCommConfigRootInfo、HcclCommInitClusterInfoV2、CommInitRootInfo、HcclCommInitRootInfoConfigV2五个入口中,将opbasedCommInfoV2.hcclGroupMap.find(...)的判定结果提前存入commExists,hcclGroupMap.find仅执行一次,CHK_PRT_RET改为复用该变量判断,避免重复查询Group2Commmap。 - 补充
RPT_INPUT_ERREI0003 规范报错: 在查重命中(commExists为 true)时调用RPT_INPUT_ERR按EI0003模板上报,填充ccl_op/value/parameter/expect四个槽位,使错误管理器输出含正确错误码与参数的规范报错;value槽位按入口分别填入commId或identifier的真实值,ccl_op填入对应入口函数名。 - 覆盖五个通信域创建入口: 本次改动统一覆盖
CreateCommConfig(填commId)、CreateCommConfigRootInfo(填identifier)、HcclCommInitClusterInfoV2(填HCCL_WORLD_GROUP对应的commId)、CommInitRootInfo(填identifier)、HcclCommInitRootInfoConfigV2(填identifier),保证各入口在重复创建时均能向用户侧返回带EI0003错误码的规范报错。


Incorrect?
atomgit-bot
Aug 31 Comments:
Aug 31 Comments:
guanzhongkang
Aug 31 Comments:
Aug 31 Comments:
/compile


Aug 31 Pre merge succeeded (commit_id: a45496c32ad7c84e0c6c1b8ad086ce8d3655036a)
182 messages are collapsed here。 See more
Sep 2 Added label: lgtmapproved
CANN-robot
Sep 2 Comments:
Sep 2 Comments:
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.


Sep 2 Resolved final issue
Sep 2 Merged pull request
描述
通信域创建入口在 identifier 查重命中时,此前仅打印 HCCL_ERROR 日志,未向错误管理器上报 EI0003,用户侧拿不到带错误码的规范报错。本 PR 补充 RPT_INPUT_ERR 规范上报并顺带消除重复 find 查询:
变更类型
关联的Issue
NA
测试
已完成的测试用例和场景:
补充的UT用例(位于 test/legacy/ut/framework/interface/op_base/ut_op_base_v2.cc,hccl_v2_utest 目标):
Ut_HcclCommInitRootInfoV2_When_DuplicateCreation_Expect_Return_HCCL_E_PARAUt_HcclCommInitRootInfoConfigV2_When_DuplicateCreation_Expect_Return_HCCL_E_PARAUt_CreateCommConfigRootInfo_When_DuplicateCreation_Expect_Return_HCCL_E_PARA用例通过 mock RptInputErr 捕获上报内容做断言(error_code=EI0003,ccl_op=HcclCommInitRootInfo,value=identifier,parameter=identifier),确保查重命中分支的规范上报行为被真实验证,而非仅断言返回值;查重不命中(首次创建)时断言不触发上报。
位置说明:
执行结果:以 CI 门禁(/compile)UT 结果为准。
文档更新
(内容:错误格式与报错示例中删除 "(operator name)" 注释,与 error_code.cc 中 EI0003 模板的变更保持同步)
合入检查