已关闭
[Bug-Report|缺陷反馈] check_kernel_ut.sh 解析多行 OPS_CATEGORY_LIST 恒空 + local_check.sh 管道吞错,全仓 kernel UT 检查形同虚设 #3105
不喜欢雨天ༀ创建于  9月9日关闭于  9月22日
不喜欢雨天ༀ
不喜欢雨天ༀ
9月9日 创建

问题

ops-math 仓库的两个本地门禁脚本存在连锁缺陷,导致 kernel UT 检查在任何情况下都不会真正执行测试,且失败时仍显示 PASS:

缺陷一:check_kernel_ut.sh 的 OPS_CATEGORY_LIST 解析恒空

scripts/ci/check_kernel_ut.sh:21:

op_category_list=$(grep -oP 'set\(OPS_CATEGORY_LIST\s*\K".*"' $current_dir/$variables_cmake | sed 's/"//g')

而 cmake/variables.cmake:233-238 的实际声明是多行格式:

set(OPS_CATEGORY_LIST
  "math"
  "conversion"
  "random"
)

单行 grep 无法匹配多行 set(),op_categories 恒为空数组 → valid_dirs 恒空 → ops_name 恒空 → 循环零次,任何文件的 kernel UT 都不会被触发,脚本静默 exit 0。

缺陷二:local_check.sh 管道后取 tee 退出码

scripts/ci/local_check.sh:931:

"${cmd_array[@]}" 2>&1 | tee "${PROJECT_ROOT}/logs/ut_kernel.txt"

由于未开 pipefail,后续 $? 取的是 tee 的退出码(恒 0)——即使 check_kernel_ut.sh 内部 build 失败,Summary 仍显示 Kernel UT PASS。

复现(本地 CANN 9.2.0)

echo "conversion/chunk_cat/tests/ut/op_kernel/test_chunk_cat.cpp" > pr_filelist.txt
bash scripts/ci/check_kernel_ut.sh pr_filelist.txt   # 修复前:零输出,exit 0
bash scripts/ci/local_check.sh -f pr_filelist.txt --llt-kernel-ut  # 修复前:2 秒"PASS"(logs/ut_kernel.txt 为空)

影响

  • 所有 PR 的本地 kernel UT 验证(pre-push 门禁快速模式的 opkernel UT 阶段)实际从未运行
  • 上游 CI 失败的 kernel UT(如 !5427)在本地无法用官方入口复现,只能手工绕过直跑 build.sh

修复验证

修复后(sed 范围解析 + 空列表快速失败 + pipefail 局部开启):

ASCEND_3RD_LIB_PATH=$PWD/third_party bash scripts/ci/check_kernel_ut.sh pr_filelist.txt
# [EXECUTE_COMMAND] bash build.sh -u --opkernel --ops=chunk_cat ... 真实执行 910b/310p/950 三 soc,exit 0,1 test PASSED

修复 PR 见关联。

likedislike
不喜欢雨天ༀ不喜欢雨天ༀ
9月9日 关联了pull request:fix(ci): parse multi-line OPS_CATEGORY_LIST and propagate kernel UT failure
陈思
陈思成员
9月9日 评论:

/assign @2403_87936996

likedislike
CANN-robotCANN-robot成员
9月9日 将 2403_87936996 设为负责人
不喜欢雨天ༀ不喜欢雨天ༀ
9月13日 关联了pull request:fix(ci): check_kernel_ut.sh 支持解析多行 OPS_CATEGORY_LIST
liuchenghao
liuchenghao
9月14日 评论:

【Multica 同步】状态:backlog(已建单跟踪);说明:该门禁脚本缺陷已同步至 Multica「CANN 算子开发迁移」项目跟踪;已知悉社区侧认领与在途修复,Multica 侧是否承接将先与社区对账协调,不与现有修复重复;详情:AI4ME-123

likedislike
不喜欢雨天ༀ不喜欢雨天ༀ
9月22日 关闭了 issue