已合并
fix(om2): report visual JSON extraction errors #4403
ClarkXie创建于 6 天前
fix(om2): report visual JSON extraction errors #4403
已合并
ClarkXie创建于 6 天前
ClarkXie成员
6 天前

Pull Request

描述

OM2 包 visual JSON 提取失败场景(非法 ZIP、缺失 visual JSON、损坏 visual JSON entry)此前仅通过 GE_ASSERT 记录日志,未向用户上报对外错误码,问题难以定位。

本次变更:

  • 为上述失败场景补充 E10059 预定义错误码上报,携带 stage/reason 参数,便于问题定位。
  • 保留 model_data/model_len 的原有防御性校验行为,不额外上报预定义错误码。
  • 补充非法 ZIP、缺失 visual JSON、损坏 visual JSON entry 的 UT 覆盖,校验 E10059 上报。

变更类型

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

关联的Issue

如何测试

描述测试此变更的步骤和前提条件:

  1. 编译并运行 UT:om2_package_helper_unittest,覆盖 ExtractVisualJson_Fail_InvalidZipExtractVisualJson_Fail_NoVisualJsonExtractVisualJson_Fail_CorruptedVisualJsonEntry 用例。
  2. 验证失败场景下 ErrorManager 能查询到 E10059 错误码上报。

核对清单

其他信息

本次变更仅涉及错误码上报逻辑与 UT 用例,无文档变更。

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 ClarkXie 的贡献)
CClarkXie成员
6 天前 创建了 pull request,commit 5fb74c39
atomgit-bot
atomgit-bot
6 天前 评论:

变更摘要

本 PR 主要针对 Om2PackageHelper::ExtractVisualJson 在 OM2 visual JSON 提取失败时补充对外错误码上报能力:新增 report_extract_failed 辅助逻辑,通过 REPORT_PREDEFINED_ERR_MSG 上报 E10059 错误码并记录日志,同时将 ZIP 打开失败、未找到 visual JSON、visual JSON entry 提取失败/内容为空这几类场景由原断言改为显式上报并返回 FAILEDmodel_datamodel_len 的防御性校验保持不变。同时补充了相应单元测试,覆盖非法 ZIP、缺失 visual JSON 及损坏 visual JSON entry 三类失败场景。

主要改动

  • 新增错误码上报封装: 在 ExtractVisualJson 内引入 report_extract_failed lambda,统一调用 REPORT_PREDEFINED_ERR_MSG 上报 E10059(带 stagereason 信息)并通过 GELOGE 输出失败原因。
  • 失败路径改为显式上报并返回: 将 reader.IsGood() 失败、entry_path 为空、json_buf == nullptrjson_size == 0U 三处原 GE_ASSERT_TRUE/GE_ASSERT_NOTNULL 断言改为 if 判断,调用 report_extract_failed 后返回 FAILED
  • 保留原有防御性校验: model_data 空指针检查(GE_ASSERT_NOTNULL)和 model_len 零长度检查(GE_ASSERT_TRUE)未被改动,仍不额外上报预定义错误码。
  • 补充单元测试覆盖: 在 ExtractVisualJson_Fail_InvalidZipExtractVisualJson_Fail_NoVisualJson 中增加对 E10059 上报的断言;新增 ExtractVisualJson_Fail_CorruptedVisualJsonEntry,构造含 visual JSON 的 ZIP 并篡改 local file header 以验证损坏场景的上报。
likedislike
atomgit-bot
atomgit-bot
6 天前 评论:

代码审查

✅ 未发现问题

likedislike
CANN-robotCANN-robot成员
6 天前 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
6 天前 评论:

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
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
repo-cann/ge yangyongqiang0606, zhangfan_hanq, yuht9 (3/2) yangyongqiang0606 (1/1)

💡 Tip:

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

CLA Signature Pass

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

likedislike
此处折叠了47条消息 查看更多
yuht9成员
6 天前 评论:

/lgtm

likedislike
CANN-robotCANN-robot成员
6 天前 添加了label:lgtm
yangyongqiang
yangyongqiang成员
6 天前 评论:

/approve

likedislike
CANN-robotCANN-robot成员
6 天前 添加了label:approved
CANN-robotCANN-robot成员
6 天前 合入了pull request