已合并
visable device id问题修复 #970
visable device id问题修复 #970
已合并
pantong创建于 3月18日
pantong
3月18日

描述

在转换VisibleDevices前调用了GetPlatformInfo接口去获取chiptype信息,来判断功能支持范围。但是转换前的deviceId对于的卡,有被损坏的可能,调用GetPlatformInfo接口可能会失败。修改方案为先转换VisibleDevices,后调用GetPlatformInfo接口去获取chiptype信息。

关联的Issue

[Bug-Report|缺陷反馈]: visable device id问题修复

测试

验证转换VisibleDevices功能是否可以正常执行用例
image.png
image.png

文档更新

类型标签

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 pantong 的贡献)
Ppantong
3月18日 创建了 pull request,commit 124cd2bb
CANN-robot
CANN-robot成员
3月18日 评论:

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/tsd ZhaiPeiChao, LiWei79 (2/2) ZhaiPeiChao (1/1)
tests/ut/tsd ZhaiPeiChao, LiWei79 (2/2) ZhaiPeiChao (1/1)

💡 Tip:

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

CLA Signature Pass

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

likedislike
CANN-robotCANN-robot成员
3月18日 添加了label:cann-cla/yes
CANN-robotCANN-robot成员
3月18日 将wangtao43,zhangpengpeng8,yanmingxiang,LiWei79,ZhaiPeiChao,Reyn52166,derekxu,tingwood设为评审人
CANN-robotCANN-robot成员
3月18日 将LiWei79,ZhaiPeiChao设为审查人
Ppantong
3月18日 修改了pull request 的描述
pantong
3月18日 评论:

compile

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

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

任务名称状态日志下载链接
codecheck ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
anti_virus ✅ SUCCESS >>>>>
Check_Pr ✅ SUCCESS >>>>>
Compile_Ascend_X86 ❌ FAILED >>>>>
Compile_Ascend_ARM ❌ FAILED >>>>>
pre_comment ✅ SUCCESS >>>>>
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>>
Compile_Ascend_ARM_ubuntu24 ✅ SUCCESS >>>>>
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 >>>>>
API_Check ⚪ ABORTED >>>>>
UT_Test_mmpa ⚪ ABORTED >>>>>

[2026-03-18 09:36:48]    CI执行失败

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

🤖 CANN 代码审查报告

PR: #970 - visable device id问题修复
严重性: ✅ Low
审查时间: 2026-03-18 10:05


📊 审查结论

✅ 建议合入

  • 严重性: Low
  • 代码质量: 良好
  • 内存安全: ✅ 无风险
  • 安全性: ✅ 无漏洞
  • 测试覆盖: 部分(删除了失效的 UT)
  • 文档完整性: 部分(PR 描述清晰)

修复设备 ID 转换顺序问题,逻辑清晰正确,可合入。


📋 修改概述

修复 VisibleDevices 转换顺序:先转换设备 ID,再调用 GetPlatformInfo,避免设备损坏时接口调用失败。

  • 修改文件: 2个 (+23行, -28行)
  • 核心变更:
    • client_manager.cpp: 调整 CheckDestructFlag 和 GetInstance 中的逻辑顺序
    • client_manager_utest.cpp: 删除失效的测试用例

🔍 代码质量检查

1. 内存安全 ✅

  • 内存泄漏: 无风险(无动态内存分配)
  • 指针操作: 安全(使用局部变量)
  • 动态分配: 不涉及
  • 资源管理: 不涉及

2. 安全性 ✅

  • 输入验证: 完整(有返回值检查)
  • 边界检查: 不涉及
  • 潜在漏洞: 无

3. 可读性 ✅

  • 代码清晰度: 良好
  • 命名规范: 符合
  • 注释完整性: 保留原有注释

4. 逻辑正确性 ✅

  • 算法逻辑: 正确(修复了顺序问题)
  • 边界条件: 处理完整
  • 影响范围: 明确(设备 ID 转换逻辑)

💡 改进建议

  1. 测试覆盖: 建议补充针对新逻辑的单元测试,验证修复效果

✅ 代码亮点

  • 问题定位准确,修复方案合理
  • 代码结构清晰,逻辑简单易懂
  • 保留了原有的注释和返回值检查

总体评价:一个简洁有效的 bug 修复,代码质量良好。

likedislike
pantong
3月18日 评论:

compile

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

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

任务名称状态日志下载链接
codecheck ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
anti_virus ✅ SUCCESS >>>>>
Check_Pr ✅ SUCCESS >>>>>
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
pre_comment ✅ SUCCESS >>>>>
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>>
Compile_Ascend_ARM_ubuntu24 ✅ 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 >>>>>
API_Check ✅ SUCCESS >>>>>
UT_Test_mmpa ✅ SUCCESS >>>>>

[2026-03-18 10:49:23]    CI执行结束

likedislike
CANN-robotCANN-robot成员
3月18日 添加了label:AscendC-SUCC
Ppantong
3月18日 修改了pull request 的描述
CANN-robotCANN-robot成员
3月18日 添加了label:api-check-pass
CANN-robotCANN-robot成员
3月18日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
3月18日 添加了label:ci-pipeline-passed
zhangjie
zhangjie成员
3月18日 评论:

🤖 CANN 代码审查报告

PR: #970 - visable device id问题修复
严重性: ✅ Low
审查时间: 2026-03-18 11:05


📊 审查结论

✅ 建议合入

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

修复了设备 ID 转换顺序问题,避免在损坏的设备上调用 GetPlatformInfo。


📋 修改概述

  • 修改文件: 2个 (+23行, -28行)
  • 核心变更:
    • client_manager.cpp: 先转换 VisibleDevices,再调用 GetPlatformInfo
    • client_manager_utest.cpp: 删除不适用的单元测试

🔍 代码质量检查

1. 内存安全 ✅

  • 内存泄漏: 无风险
  • 指针操作: 安全
  • 动态分配: 不涉及
  • 资源管理: 合理

2. 安全性 ✅

  • 输入验证: 完整 - 正确处理 transDevIdFlag
  • 边界检查: 完整 - 设备 ID 转换失败时返回错误
  • 潜在漏洞: 无 - 修复了潜在的设备访问问题

3. 可读性 ✅

  • 代码清晰度: 良好 - 逻辑清晰
  • 命名规范: 符合
  • 注释完整性: 完整 - PR 描述清楚说明了问题原因

4. 逻辑正确性 ✅

  • 算法逻辑: 正确 - 先转换 ID 再获取平台信息
  • 边界条件: 处理完整 - 不支持 VisibleDevices 时回退
  • 影响范围: 明确

💡 改进建议

  1. 代码复用: CheckDestructFlag 和 GetInstance 中的逻辑相似,可考虑抽取公共方法
  2. 变量命名: inputDeviceId/logicDeviceId 命名清晰,保持一致

✅ 代码亮点

  • 问题分析清晰:识别出在损坏设备上调用 API 的风险
  • 修复方案合理:先转换 ID,再查询平台信息
  • 有测试截图验证
  • 正确处理回退逻辑:if (!IsSupportSetVisibleDevices())

总体评价:代码质量良好,建议合入 - 有效的 Bug 修复,解决了潜在的设备访问问题。

likedislike
DevLeev成员
3月18日 评论:

/lgtm

likedislike
ZhaiPeiChao
ZhaiPeiChao成员
3月18日 评论:

/approve

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

Review Guide

This pull-request passes review.
Committers who wrote a comment of /approve are: ZhaiPeiChao.
Reviewers who wrote a comment of /lgtm are: ZhaiPeiChao, LiWei79.

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