Closed
[Bug-Report|缺陷反馈]: 我用FCTAgent扫描代码仓,发现了一些并发问题,帮我确认下是否是bug #2894
chengjuanAdd on Aug 27Closed at Sep 10
陈思
Aug 28 Comments:
Aug 28 Comments:
您好,麻烦您将日志上传附件,方便我们进一步定位


陈思
Aug 28 Comments:
Aug 28 Comments:
-
bug1:理论上的无锁容器并发模式成立,但生产调用链中注册与查询不重叠,不存在可达竞态。
-
bug2:除同样受生命周期隔离外,当前仓内相关类和注册宏没有实际调用点,竞争双方均不可达。
-
两个复现程序绕过了真实加载和发布顺序,只能证明接口在人工并发调用下不安全。
-
“多个 SO 共享同一 Meyers singleton”以及“std::map 插入导致迭代器失效”的分析前提不成立。
若仍认为存在真实缺陷,需要补充至少一项生产证据:
- dlopen 返回并完成注册发布后,再次调用 RegisterOp或 AddTiling 的真实调用栈;
- SO 静态构造尚未完成,编译线程已经获得并调用该 SO tiling 回调的代码路径;
- 多个 SO 实际共享同一个 TilingRegistry 实例的符号绑定或地址证据。
在没有上述证据的情况下,现有报告不足以证明生产环境存在数据竞争。


Aug 28 Assign sunchun as responsible person
陈思
Aug 28 Comments:
Aug 28 Comments:
bug6:非问题
ZerosLikeCompileInfo 由框架通过注册的 creator 为 TilingParse 上下文创建,并在 TilingParse 完成后作为输入传给 Tiling。并行编译任务使用独立的 context 和 CompileInfo;复用场景下对象也在初始化完成后只读。报告错误地将 CompileInfo 假定为跨任务共享且反复覆写的 per-op 全局缓存,其复现及 RAPID trace 未覆盖真实框架对象创建和调用顺序。
如果您仍认为存在问题,需要提供真实 CANN 回调上的证据:
- 两个实际 TilingParseContext/TilingContext 中 compileInfo 地址完全相同;
- 同一地址上的 TilingParse 写入与 Tiling 读取时间重叠;
- 对应的框架调用栈,而不是 repro_driver.cpp 的模拟调用栈。
在没有这三项证据的情况下,不能认定存在生产数据竞争。


Sep 10 Close issue
Sep 10 Added label: resolved
一、问题描述 (必填)
二、环境信息 (可选)
三、重现步骤 (可选)
四、预期结果 (可选)
💡 备注(选填)
一、问题描述 (必填)
二、环境信息 (可选)
三、重现步骤 (可选)
四、预期结果 (可选)
💡 备注(选填)
具体日志联系我获取