Skip to content

bug: 每次启动都报 Driver already registered, skipping {"driverName":"com.objectstack.driver.sql"} —— SQL driver 被注册了两次 #4773

Description

@os-zhuang

现象

pnpm dev(showcase)每次启动,boot diagnostics 里固定有一条:

WARN Driver already registered, skipping {"driverName":"com.objectstack.driver.sql"}

冷启、热启都有,稳定复现。

说明

这条是 showcase 冷启 24 条启动告警之一,在排查 pnpm dev 控制台刷屏(#4765)时顺带发现的。我没有深挖根因 —— 记录在这里,免得它继续以"已知噪音"的身份留在启动日志里。

需要查清的是:

  1. 谁注册了第一次、谁注册了第二次?看起来至少有两条路径都在注册 com.objectstack.driver.sql(候选:SqlDriver 插件自身 / 运行时按 OS_DATABASE_URL 推断的驱动装配 / defineStack 里的 datasource 声明)。
  2. 第二次注册被跳过,赢的是第一次 —— 这两次注册的配置是否一致?如果不一致(比如一次带连接串、一次带不同的能力集),那"skipping"就不只是噪音,而是静默采用了其中一份配置。
  3. 如果两次注册本来就是设计内的幂等重入,那这条日志就不该是 warn —— 一个每次启动都出现、且不代表任何异常的 warn,只会训练人忽略 warn 这个级别。

换句话说:要么它是真重复注册(修调用方),要么它是正常幂等(降级日志)。当前状态是两者都没确定。

复现

rm -rf examples/app-showcase/.objectstack && pnpm dev

启动摘要的 ⚠ Boot diagnostics 段落里能看到。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions