Closed
[Bug|算子缺陷]: aclnnSparseFlashAttention preTokens参数(int64)注入超int32值被拦截, 错误码561002/561103非161xxx参数码 #526
Alice_zhouAdd on  4 days agoClosed at  3 days ago
Alice_zhouCollaborators
4 days ago Create

一、问题描述(必填)

  • 接口名: aclnnSparseFlashAttention 参数: preTokens (int64_t 常量attr)
  • 测试场景: normal_attr64(int64 attr超int32值注入专项)
  • 压测日期: 2026-11-09 执行卡号: davinci0 CANN: 9.3.0 注入值: 2147484000(INT32_MAX+353)
  • 注入结果分布: skip/GWS561002×200
  • 基线对照: ATTR64_OFF=1不注入时30条/接口执行通过(详见附件执行步骤说明)

二、分析结论

注入值2147484000后全部用例被拒绝, 但返回码为561002/561103(内部错误)而非161001/161002(参数校验码)。资料描述: 仅支持默认值2^63-1。。分析结论: 拒绝语义符合资料取值范围, 但错误码不符合aclnn分层校验规范(参数非法应报161xxx), 影响问题定位与自动化判定, 属维测错误码问题。

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

  1. 下载测试框架: https://gitcode.com/Alice_zhou/Vector_fuzz_cpp_testing/tree/main/turing_sec/aclnnAPI_fuzz/
  2. 环境准备(清除原有内容,将附件 cpp 放入对应目录下): rm -rf aclnnAPI_fuzz/src/op/*;将附件 aclnnSparseFlashAttention_attr64.cpp 放入 aclnnAPI_fuzz/src/op/
  3. 编译: cd aclnnAPI_fuzz/ ; make op_fuzz
  4. 执行: cd out ; export ASCEND_OPP_PATH=<cann>/opp ; export LD_LIBRARY_PATH=<cann_toolkit>/lib64:$LD_LIBRARY_PATH ; ./aclnnAPI_fuzz aclnnSparseFlashAttention_attr64_fuzz 1000
    (基线对照: 命令前加 ATTR64_OFF=1)

四、附件与证据(必填)

  • 附件压缩件(执行步骤说明+CPP+1000条执行日志+plog): aclnnSparseFlashAttention_attr64.zip 直链下载
  • 附件内日志含逐条 [FUZZ_ATTR64] 注入标记 / [FUZZ_PARAM] 完整参数 / [FUZZ_RESULT] 结果,plog含设备侧报错原文
  • 汇总报告: out_res/attr64_超int32专项压测总报告.md

💡 存在的问题(选填)

自动化压测平台attr64专项:int64常量attr超int32边界值(2147484000)处理行为测试。预期合理行为: 无资料上界则接受执行, 有资料上界则GWS层161001/161002干净拒绝。


发散核对复核(2026-11-09:关闭,资料与实际一致)

白盒(ops-*源码)+ 黑盒(注入实测)双向核对结论:资料描述与代码实际校验/实际支持范围完全一致,接口行为符合资料,非缺陷。

  • 资料: preTokens仅支持默认值2^63-1; 白盒: sparse_flash_attention_tiling.cpp:859 OP_CHECK_IF(pre_tokens!=INT64_MAX)→GRAPH_FAILED, 校验语义与资料完全一致; 黑盒: 资料值2^63-1注入200/200执行成功, 2147484000被拒(plog "Pre_tokens must be 9223372036854775807")

按维护方决定关闭本单。(备注:拒绝时返回码为561xxx而非161xxx参数码,错误码层级规范问题如需跟踪可另行汇总处理。)

likedislike
AAlice_zhouCollaborators
3 days ago Modify description of issue
AAlice_zhouCollaborators
3 days ago Close issue