| Fix: 修正arch22测试中stream与handle的销毁顺 Co-authored-by: Zitao Wang<wangzitao4@huawei.com> # message auto-generated for no-merge-commit merge: !220 merge issue203 into master Fix: 修正arch22测试中stream与handle的销毁顺 Created-by: wangzitao_leo Commit-by: Zitao Wang Merged-by: cann-robot Description: ## 修复内容 修复 test/copy/scopy/arch22/scopy_test.cpp 中 stream 与 handle 销毁顺序错误导致的 Bus error(退出码 135)。 ## 问题原因 aclblasDestroy 内部会调用 aclrtSynchronizeStream(h->stream) 同步流。若测试先调用 aclrtDestroyStream(stream) 再调用 aclblasDestroy(handle),则 aclblasDestroy 会访问已释放的 stream,触发 SIGBUS。 ## 修复方案 按库的借用语义(stream 由用户创建并通过 aclblasSetStream 绑定,库只借用不拥有),在所有清理路径中将销毁顺序调整为: cpp aclblasDestroy(handle); // 先同步 stream,再释放 handle 资源 aclrtDestroyStream(stream); // 再释放用户创建的 stream 共修正 16 处清理路径(handle/stream 与 handle2/stream2 各 8 处)。 ## 关联 Issue Closes #203 See merge request: cann/ops-blas!220 | 3 天前 |