已关闭
【缺陷报告】内存泄漏 - 文件test_aclnn_nsa_selected_attention.cpp - 函数main - 行号215 #4795
zhangjunkai9创建于 15 天前关闭于 1 天前
游震
12 天前 评论:
12 天前 评论:
/assign @yu-xinjie62


12 天前 将 yu-xinjie62 设为负责人
5 天前 将 hz36amy_00 设为负责人
4 天前 关联了pull request:fix: release NSA example int arrays
1 天前 关闭了 issue
1 天前 添加了label:resolved
缺陷信息
缺陷描述
在 main 函数中,第215-216行通过 aclCreateIntArray 创建了 actualSeqQLenOptional 和 actualSeqKvLenOptional 两个 aclIntArray 对象(动态分配)。但 FreeResource 函数(第104-159行)仅释放6个 aclTensor、6个 device 地址、workspace、stream 和 context,未处理这两个 aclIntArray 对象。函数末尾(第321行)和所有错误路径调用 FreeResource 时均未调用 aclDestroyIntArray 释放这两个对象,导致内存泄漏。
事实核查
数据流证据
传播路径:
调用链
可达调用链1 起点:
(entry functions)→ 终点:main深度:0修复建议
// 在第321行 FreeResource 调用之前释放 aclIntArray 对象 // 6. 释放aclTensor和aclScalar,需要根据具体API的接口定义修改; 释放device资源 aclDestroyIntArray(actualSeqQLenOptional); aclDestroyIntArray(actualSeqKvLenOptional); FreeResource(q, k, v, attentionOut, softmaxMax, softmaxSum, qDeviceAddr, kDeviceAddr, vDeviceAddr, attentionOutDeviceAddr, softmaxMaxDeviceAddr, softmaxSumDeviceAddr, workspaceSize, workspaceAddr, deviceId, &context, &stream);