已合并
fix: [dump] error code for parse json #1284
fix: [dump] error code for parse json #1284
已合并
GuoWenbo创建于 3月28日
GuoWenbo成员
3月28日

描述

删除WP0001错误码,warning类错误码需要额外调用接口打印,实际场景用处不大
新增EP0004错误码,针对解析文件失败的场景报错(主要是json文件)
修正EP0003错误码在路径不存在时的msg描述

关联的Issue

测试

文档更新

类型标签

  • Bug修复
  • 新特性
  • 性能优化
  • 文档更新
  • 其他,请描述:
likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 GuoWenbo 的贡献)
GGuoWenbo成员
3月28日 创建了 pull request,commit 44fb6ff8
CANN-robot
CANN-robot成员
3月28日 评论:

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


PR Approval Progress

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

Module Approval Details

module lgtm status approve status
src/dfx zhuliangying, newstarzj (2/2) zhuliangying (1/1)
src/dfx/error_manager/error_code.json ycm0028, yangyongqiang0606 (2/2) ycm0028 (1/1)

💡 Tip:

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

CLA Signature Pass

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

likedislike
CANN-robotCANN-robot成员
3月28日 将newstarzj,chenhao_1209,zhuliangying,wangtao43,zhangpengpeng8,yanmingxiang,Reyn52166,gcw_kUomxQ2l,Andy-lb,gcw_Dm2TsRUi,derekxu,tingwood设为评审人
CANN-robotCANN-robot成员
3月28日 添加了label:cann-cla/yes
CANN-robotCANN-robot成员
3月28日 将newstarzj,chenhao_1209,zhuliangying设为审查人
GuoWenbo成员
3月28日 评论:

/compile

likedislike
CANN-robotCANN-robot成员
3月28日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
3月28日 评论:

流水线任务触发成功
任务链接 [0afb937bdcdb4acf9f4c0b59d14fbf5c][流水线指导]

likedislike
yring_8成员
3月28日 评论:

/lgtm

likedislike
CANN-robot
CANN-robot成员
3月28日 评论:

The following users do not have permission to comment /lgtm or /approve on any module in this PR:
yring_8

likedislike
zhangjie
zhangjie成员
3月28日 评论:

/lgtm

likedislike
CANN-robot
CANN-robot成员
3月28日 评论:

The following users do not have permission to comment /lgtm or /approve on any module in this PR:
yring_8

likedislike
zhuliangying成员
3月28日 评论:

/approve

likedislike
CANN-robot
CANN-robot成员
3月28日 评论:

The following users do not have permission to comment /lgtm or /approve on any module in this PR:
yring_8

likedislike
GuoWenbo成员
3月28日 评论:

/compile

likedislike
ycm0028成员
3月28日 评论:

/approve

likedislike
CANN-robot
CANN-robot成员
3月28日 评论:

The following users do not have permission to comment /lgtm or /approve on any module in this PR:
yring_8

likedislike
CANN-robotCANN-robot成员
3月28日 添加了label:approved
CANN-robot
CANN-robot成员
3月28日 评论:

流水线任务触发成功
任务链接 [ca555ca6e71d4404ae022a6c0a5e8f4e][流水线指导]

任务名称状态日志下载链接
codecheck ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
anti_virus ❌ FAILED >>>>>
Check_Pr ✅ SUCCESS >>>>>
Compile_Ascend_X86 ❌ FAILED >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
pre_comment ❌ FAILED >>>>>
UT_Test_acl ⚪ ABORTED >>>>>
UT_Test_rts ⚪ ABORTED >>>>>
UT_Test_rts_c ⚪ ABORTED >>>>>
UT_Test_platform ⚪ ABORTED >>>>>
UT_Test_qs ⚪ ABORTED >>>>>
UT_Test_aicpusd ⚪ ABORTED >>>>>
UT_Test_tsd ⚪ ABORTED >>>>>
UT_Test_dfx ⚪ ABORTED >>>>>
UT_Test_mmpa ⚪ ABORTED >>>>>

[2026-03-28 16:37:05]    CI执行失败

likedislike
CANN-robotCANN-robot成员
3月28日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
3月28日 添加了label:ci-pipeline-failed
GuoWenbo成员
3月28日 评论:

/compile

likedislike
CANN-robotCANN-robot成员
3月28日 删除了label:ci-pipeline-failed
CANN-robotCANN-robot成员
3月28日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
3月28日 评论:

流水线任务触发成功
任务链接 [39495badd9584665a2a806caa3de64dd][流水线指导]

任务名称状态日志下载链接
codecheck ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
anti_virus ✅ SUCCESS >>>>>
Check_Pr ✅ SUCCESS >>>>>
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
pre_comment ✅ SUCCESS >>>>>
UT_Test_acl ✅ SUCCESS >>>>>
UT_Test_rts ✅ SUCCESS >>>>>
UT_Test_rts_c ✅ SUCCESS >>>>>
UT_Test_platform ✅ SUCCESS >>>>>
UT_Test_qs ✅ SUCCESS >>>>>
UT_Test_aicpusd ✅ SUCCESS >>>>>
UT_Test_tsd ✅ SUCCESS >>>>>
UT_Test_dfx ✅ SUCCESS >>>>>
UT_Test_mmpa ✅ SUCCESS >>>>>

[2026-03-28 17:02:52]    CI执行结束

likedislike
yangyongqiang
yangyongqiang成员
3月28日 评论:

/lgtm

likedislike
CANN-robot
CANN-robot成员
3月28日 评论:

The following users do not have permission to comment /lgtm or /approve on any module in this PR:
yring_8

likedislike
CANN-robotCANN-robot成员
3月28日 添加了label:lgtm
CANN-robot
CANN-robot成员
3月28日 评论:

🤖 CANN 代码审查报告

PR: #1284 - fix: [dump] error code for parse json
严重性: ✅ Low
审查时间: 2026-03-28 16:51


📊 审查结论

✅ 建议合入

  • 严重性: Low
  • 代码质量: 良好
  • 内存安全: ✅ 无风险
  • 安全性: ✅ 无漏洞
  • 测试覆盖: NA (Bug 修复)
  • 文档完整性: NA

这是一个改进错误处理的 PR,删除不实用的 warning 错误码,新增 JSON 解析失败的错误码,并改进路径错误的描述。代码改动清晰、合理,无明显问题。


📋 修改概述

本次 PR 主要改进 dump 模块的错误码处理:

  • 修改文件: 2个 (+9行, -9行)
  • 核心变更:
    • src/dfx/adump/adump/impl/dump_config_converter.cpp: 改进错误处理逻辑
    • src/dfx/error_manager/error_code.json: 更新错误码定义

具体变更:

  1. ✅ 删除 WP0001 warning 错误码(ASCEND_DUMP_SCENE 环境变量无效)
  2. ✅ 新增 EP0004 error 错误码(文件解析失败,主要是 JSON)
  3. ✅ 修正 EP0003 错误信息,根据 errno 区分权限错误和无效路径

🔍 代码质量检查

1. 内存安全 ✅

检查项:

  • ✅ 无动态内存分配,无内存泄漏风险
  • ✅ 异常处理中使用 std::string 栈对象,自动管理内存
  • e.what() 返回的 C 字符串被正确复制到 std::string

代码片段:

std::string errReason(e.what());  // 安全: std::string 管理内存

结论: 无内存安全问题。

2. 安全性 ✅

检查项:

  • ✅ 使用 errno 检查错误原因,符合 POSIX 标准
  • ✅ 异常信息通过 e.what() 获取,安全可靠
  • ✅ 所有字符串操作使用 std::string,避免缓冲区溢出

代码片段:

std::string errReason = (errno == EACCES) ? 
    "The value is a path without read and write permissions" : 
    "The value is an invalid path";

结论: 无安全漏洞。

3. 可读性 ✅

优点:

  • ✅ 错误信息清晰,易于理解
  • ✅ 使用三元运算符简化条件判断
  • ✅ 错误码命名规范 (WP=Warning, EP=Error)
  • ✅ JSON 配置结构清晰

建议:

  • ⚠️ 错误信息可考虑国际化(当前为英文)
  • ⚠️ 建议在注释中说明 EP0004 主要用于 JSON 解析失败

结论: 代码可读性良好。

4. 逻辑正确性 ✅

检查项:

  • errno == EACCES 判断权限错误,逻辑正确
  • ✅ 异常捕获后返回 ADUMP_FAILED,符合错误处理规范
  • ✅ 删除 WP0001 后,相关调用代码一并删除,无遗留

边界条件:

  • ✅ 路径不存在时,errno 不是 EACCES,会提示 "invalid path"
  • ✅ 权限不足时,errno 是 EACCES,会提示 "without read and write permissions"
  • ✅ JSON 解析失败时,会捕获异常并记录错误原因

结论: 逻辑正确,边界条件处理合理。


💡 改进建议

1. 文档完善 (可选)

建议在代码注释或 commit message 中说明:

  • EP0004 主要用于 JSON 文件解析失败
  • 删除 WP0001 的原因(warning 类错误码需要额外调用接口打印)

2. 错误信息优化 (可选)

// 当前:
std::string errReason = (errno == EACCES) ? 
    "The value is a path without read and write permissions" : 
    "The value is an invalid path";

// 建议(更具体):
std::string errReason = (errno == EACCES) ? 
    "The path exists but lacks read/write permissions" : 
    "The path does not exist or is invalid";

3. 异常类型细化 (可选)

当前捕获 std::exception,可考虑捕获更具体的异常类型(如 nlohmann::json::exception),以提供更精确的错误信息。


✅ 代码亮点

  1. 错误处理改进: 通过检查 errno 提供更精确的错误信息,提升用户体验
  2. 代码简化: 删除不实用的 warning 错误码,减少维护成本
  3. 异常安全: 在 JSON 解析异常时记录详细错误信息,便于问题定位
  4. 一致性: 错误码定义与使用保持一致,JSON 配置更新及时

📌 总体评价

这是一个高质量的 Bug 修复 PR:

改动合理: 删除低价值的 warning 错误码,新增实用的 error 错误码
实现正确: 错误处理逻辑清晰,边界条件考虑周全
无副作用: 不涉及内存管理、并发等复杂场景,风险低
已获批准: 已有 lgtm 和 approved 标签,CI 正在运行

建议: 直接合入,无需额外修改。


⚠️ 声明: 本审查报告由 AI 自动生成,仅供参考。建议人工复核后再做最终决定。

likedislike
CANN-robotCANN-robot成员
3月28日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
3月28日 添加了label:ci-pipeline-passed
CANN-robot
CANN-robot成员
3月28日 评论:

Review Guide

This pull-request passes review.
Committers who wrote a comment of /approve are: zhuliangying, ycm0028.
Reviewers who wrote a comment of /lgtm are: newstarzj, ycm0028, yangyongqiang0606, zhuliangying.

likedislike
CANN-robotCANN-robot成员
3月28日 合入了pull request