Closed
[Bug-Report|缺陷反馈]: 我用FCTAgent扫描代码仓,发现了一些并发问题,帮我确认下是否是bug #2894
chengjuanAdd on  Aug 27Closed at  Sep 10
chengjuan
Aug 27 Create

一、问题描述 (必填)

二、环境信息 (可选)

三、重现步骤 (可选)

四、预期结果 (可选)

💡 备注(选填)

一、问题描述 (必填)

二、环境信息 (可选)

三、重现步骤 (可选)

111111111111111111111111111111.png

四、预期结果 (可选)

💡 备注(选填)
具体日志联系我获取

likedislike
陈思
陈思Collaborators
Aug 28 Comments:

您好,麻烦您将日志上传附件,方便我们进一步定位

likedislike
陈思
陈思Collaborators
Aug 28 Comments:
  • bug1:理论上的无锁容器并发模式成立,但生产调用链中注册与查询不重叠,不存在可达竞态。

  • bug2:除同样受生命周期隔离外,当前仓内相关类和注册宏没有实际调用点,竞争双方均不可达。

  • 两个复现程序绕过了真实加载和发布顺序,只能证明接口在人工并发调用下不安全。

  • “多个 SO 共享同一 Meyers singleton”以及“std::map 插入导致迭代器失效”的分析前提不成立。

    若仍认为存在真实缺陷,需要补充至少一项生产证据:

    1. dlopen 返回并完成注册发布后,再次调用 RegisterOp或 AddTiling 的真实调用栈;
    2. SO 静态构造尚未完成,编译线程已经获得并调用该 SO tiling 回调的代码路径;
    3. 多个 SO 实际共享同一个 TilingRegistry 实例的符号绑定或地址证据。

    在没有上述证据的情况下,现有报告不足以证明生产环境存在数据竞争。

likedislike
sunchunCollaborators
Aug 28 Comments:

/assign

likedislike
CANN-robotCANN-robotCollaborators
Aug 28 Assign sunchun as responsible person
陈思
陈思Collaborators
Aug 28 Comments:

bug6:非问题
ZerosLikeCompileInfo 由框架通过注册的 creator 为 TilingParse 上下文创建,并在 TilingParse 完成后作为输入传给 Tiling。并行编译任务使用独立的 context 和 CompileInfo;复用场景下对象也在初始化完成后只读。报告错误地将 CompileInfo 假定为跨任务共享且反复覆写的 per-op 全局缓存,其复现及 RAPID trace 未覆盖真实框架对象创建和调用顺序。

如果您仍认为存在问题,需要提供真实 CANN 回调上的证据:

  1. 两个实际 TilingParseContext/TilingContext 中 compileInfo 地址完全相同;
  2. 同一地址上的 TilingParse 写入与 Tiling 读取时间重叠;
  3. 对应的框架调用栈,而不是 repro_driver.cpp 的模拟调用栈。

在没有这三项证据的情况下,不能认定存在生产数据竞争。

likedislike
SsunchunCollaborators
Sep 9 Associated pull request
CANN-robotCANN-robotCollaborators
Sep 10 Close issue
CANN-robotCANN-robotCollaborators
Sep 10 Added label: resolved