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

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成员
9月7日 添加了label:bug-report
YeZZzzz1成员
9月7日 评论:

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

likedislike
YYeZZzzz1成员
9月7日 将 hbhdhd 设为负责人
Hyunbin
Hyunbin成员
9月7日 评论:

已初步定位:该报错不是不同 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成员
22 天前 关联了pull request:fix(package): allow --force to recover from incomplete baseline manifest
HyunbinHyunbin成员
19 天前 issue状态由 待办的 改变为 已完成
HyunbinHyunbin成员
19 天前 关闭了 issue
CANN-robotCANN-robot成员
19 天前 添加了label:resolved
Hyunbin
Hyunbin成员
16 天前 评论:

该问题已通过关联 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