Closed
[Bug|算子缺陷]: aclnnNeg error场景 存在1处意外成功(资料描述不支持但实际执行成功,待人工复核) #101
Alice_zhouAdd on  10 days agoClosed at  9 days ago
Alice_zhouCollaborators
10 days ago Create

一、问题描述(必填)

  • 接口名:aclnnNeg;测试场景:error(异常约束违反压测);来源:error_stress_unexpected_success.xlsx(异常场景压测意外成功统计报告,2026-10-22)
  • 压测结果:FINAL: total=120 detected=108 param=73 inner=0 runtime=0 unexpected=12 rate=90%(每个异常场景注入资料描述不支持的约束后检查返回码)
  • 意外成功统计:共 1 处意外成功场景(合计意外成功执行 2 次)——预期接口应报 161001/161002 参数错误,实际执行成功 ret=0([FUZZ_VERIFY] match=NO, actual_code=0)
  • 接口级压测信息:运行状态=OK;场景总数=13,覆盖场景数=13(覆盖率100%);plog aicore 检查=CLEAN
  • 说明:伪异常已按框架规则剔除(format=ND 通用布局的 FORMAT 类场景、Optional 参数传 nullptr 合法场景、dtype 可互推导的配对场景),下表仅保留有效约束违反场景

二、超预期的问题点(意外成功明细)

场景ID 异常类型 异常目标参数 异常场景描述(注入的约束违反) 期望错误码 期望错误名 实际返回码 意外成功次数/总执行次数 资料维测要求
8 DTYPE_UNSUPPORTED out out dtype=ACL_UINT8 not in supported list [INT8,INT32,INT64,FLOAT16,BF16,FLOAT,D 161002 ACLNN_ERR_PARAM_INVALID 0 2/2 返回码应为161001或161002,错误信息应包含ACL_UINT8不支持或invalid dtype相关提示

上述 1 处场景均为按资料约束注入异常(不支持 dtype / 维度超限 / shape 非法 / 参数 nullptr / 属性非法等)后接口实际执行成功([FUZZ_VERIFY] expected_code=161001或161002, actual_code=0, match=NO),接口未按资料描述的约束拒绝非法输入,请核对资料约束与 CANN 实现的一致性。

三、问题复现步骤(必填)

  1. 下载测试框架:https://gitcode.com/Alice_zhou/Vector_fuzz_cpp_testing/tree/main/turing_sec/aclnnAPI_fuzz/
  2. 环境准备(清除原有内容,将附件 cpp 放入对应目录下):
    rm -rf aclnnAPI_fuzz/src/op/*
    # 将附件 aclnnNeg_error.cpp 放入 aclnnAPI_fuzz/src/op/ 下
    
  3. 编译:
    cd aclnnAPI_fuzz/ ; make
    
  4. 执行:
    cd out ; ./aclnnAPI_fuzz aclnnNeg_error_fuzz
    
    执行后在打屏日志中查看 [FUZZ_ERROR_POINT](注入的异常点,即上表场景)与 [FUZZ_VERIFY](expected_code vs actual_code),上表场景均复现为 match=NO 且 actual_code=0(意外成功)。

四、附件与证据(必填)

💡 存在的问题(选填)
该问题由 fuzz 自动化压测平台 error 场景压测产出(按接口提单,一接口一单);如需更多上下文(完整打屏日志/plog/覆盖度报告),请访问平台 output/aclnnNeg/fuzz_logs/ 目录。

likedislike
Alice_zhouCollaborators
9 days ago Comments:

DTYPE 场景逐个核实结果(2026-11-05,框架已更新至 fc461105 后逐个核实)

针对本单中 1 处 dtype 类意外成功场景,已基于 ops-* 仓非 experimental 源码(op_api 适配层)+ md 资料交叉逐个核实。核实结论:1 处为非缺陷(cast/隐式转换场景、实现支持列表扩展或框架误报)。

场景ID 目标参数 注入dtype 核实结论 核实依据(源码证据)
8 out UINT8 cast/隐式转换(非缺陷) 源码经 PromoteType/BinaryOpTypePromote + l0op::Cast 将输入提升转换后计算(或将结果cast到输出dtype),未对目标参数按md列表做白名单拦截

结论:本单 dtype 类场景经核实全部为非缺陷——实现通过 PromoteType/l0op::Cast 隐式转换(或 A5 路径支持列表已含该 dtype)正常接受输入,属实现比 md 资料更宽松的 cast 场景,非实现缺陷;建议资料侧补充说明 A5 实际 dtype 支持范围(或维持现状,由资料owner判断)。

核实方法:以 ops-* 仓非 experimental 的 op_api 适配层源码为准——①检查 A5/REGBASE 路径 dtype 支持列表是否已含注入 dtype;②检查 PromoteType/BinaryOpTypePromote + l0op::Cast 隐式转换机制;③对照 md 的互推导关系(deduction_relationship.md)验证配对组合合法性。执行成功且属以上三种机制之一 → 非缺陷(cast场景);参数完全无 dtype 校验且未参与计算 → 维测缺失;适配层源码不可得 → 需人工确认。

likedislike
Alice_zhouCollaborators
9 days ago Comments:

关闭说明(2026-11-05 dtype 场景逐个核实后关闭)

本单 1 处意外成功场景均为 dtype 类场景,经基于非 experimental 源码(op_api 适配层)+ md 交叉逐个核实,全部为非缺陷(1处cast/隐式转换),无真实问题,关闭本单。

建议资料侧视情补充说明 A5 实际 dtype 支持范围。

likedislike
AAlice_zhouCollaborators
9 days ago Close issue