已关闭
[Bug-Report|缺陷反馈]: asc-comm安装包,安装失败 #12
suqwe创建于  27 天前关闭于  16 天前
suqwe
suqwe成员
27 天前 创建

Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.

Describe the current behavior / 问题描述 (Mandatory / 必填)

使用不同的asc comm分别进行安装和卸载。

预期的行为,安装成功,但是目前当使用不同change id 出包,无法正常安装。

Environment / 环境信息 (Mandatory / 必填)

环境无关

Steps to reproduce the issue / 重现步骤 (Mandatory / 必填)

asc-comm 使用git reset到不同的head,分别进行安装

Describe the expected behavior / 预期结果 (Mandatory / 必填)

安装成功

[root@localhost asc-comm_4271]# ./build_out/cann-asc-comm_9.2.0_linux-aarch64.run --full --install-path=/home/c00977674/cann-9.2.0/ -- force
Verifying archive integrity... 100% SHA256 checksums are OK. All good.
Uncompressing cann-asc-comm development patch 100%
[AscComm] [2026-09-05 23:00:45] [INFO]: Start time:2026-09-05 23:00:45
[AscComm] [2026-09-05 23:00:45] [INFO]: LogFile:/var/log/ascend_seclog/ascend_install.log
[AscComm] [2026-09-05 23:00:45] [INFO]: InputParams:--full --install-path=/home/c00977674/cann-9.2.0/ --force
[AscComm] [2026-09-05 23:00:45] [INFO]: OperationLogFile:/var/log/ascend_seclog/operation.log
[AscComm] [2026-09-05 23:00:46] [ERROR]: baseline does not cover installed patch path: asc/impl/adv_api/detail/hcomm/common/hcomm_base .h
[AscComm] [2026-09-05 23:00:46] [INFO]: End time:2026-09-05 23:00:46

Special notes for this issue/备注 (Optional / 选填)

likedislike
suqwesuqwe成员
27 天前 添加了label:bug-report
YeZZzzz1成员
27 天前 评论:

感谢反馈,@Hyunbin已复现存在该问题,修复方案讨论修改中

likedislike
YYeZZzzz1成员
27 天前 将 hbhdhd 设为负责人
Hyunbin
Hyunbin成员
26 天前 评论:

已初步定位:该报错不是不同 change-id 之间禁止切换,而是目标 CANN 中已有的 asc-comm 安装状态不完整。active.manifest.sha256 记录了 asc/impl/adv_api/detail/hcomm/common/hcomm_base.h,但 baseline/manifest.tsv 没有对应条目,因此安装器无法判断卸载时应恢复原文件还是删除该文件。

--force 当前不会绕过 baseline 完整性检查,因为直接忽略可能在后续卸载时误删安装前已有文件。
后续会补充对这类历史状态的兼容处理:如果缺失的 manifest 条目仍有明确的 baseline 备份,允许通过 --force 恢复状态后继续安装;如果备份也缺失,则继续拒绝自动推断,避免破坏原 CANN 文件。

likedislike
HyunbinHyunbin成员
18 天前 关联了pull request:fix(package): allow --force to recover from incomplete baseline manifest
HyunbinHyunbin成员
16 天前 issue状态由 待办的 改变为 已完成
HyunbinHyunbin成员
16 天前 关闭了 issue
CANN-robotCANN-robot成员
16 天前 添加了label:resolved
Hyunbin
Hyunbin成员
12 天前 评论:

该问题已通过关联 PR #184 修复并合入 master 分支,同时 backport 至 9.2.0 分支(PR #195),CI 流水线全部通过。

问题定位:报错并非不同 change-id 之间禁止切换,而是目标 CANN 环境中已有的 asc-comm 安装状态不完整:active.manifest.sha256 记录了 asc/impl/adv_api/detail/hcomm/common/hcomm_base.h,但 baseline/manifest.tsv 缺少对应条目,安装器无法判断卸载时应恢复还是删除该文件;旧版本中 --force 也不会绕过该完整性检查,导致用户被卡死。

修复方案(PR #184):

  • 将原先直接失败的 validate_baseline_coverage 拆分为 collect_missing_baseline_paths(收集缺失路径)、validate_baseline_recovery(恢复校验)、repair_baseline_manifest(补写清单)三步,并接入 install_patch 与 uninstall_patch 流程;
  • 清单不完整时:不带 --force 仍失败并提示;带 --force 且 STATE_DIR/baseline/files/ 下既有备份可用时,自动将缺失条目以 present 状态补写回 baseline/manifest.tsv 并继续安装;备份也缺失时继续报错拒绝,避免误删原 CANN 文件;
  • tests/package/test_run_package.sh 新增覆盖三类场景:无 --force 失败、--force 且备份存在时成功恢复、备份不可用时报错。
likedislike