Skip to content

datasource pool 声明在 memory 驱动臂同样被静默丢弃(#5714 的姊妹臂,裁决未覆盖) #5931

Description

@hotlong

发现于 #5714(sqlite / sqlite-wasm 臂静默丢 pool)的实现工作,与该 PR 的裁决范围无关,单独记录。

事实

createDefaultDatasourceDriverFactorymemory 臂只把 buildMemoryConfig(spec) 传给 InMemoryDriver,spec.pool 从未被读取:

  • packages/services/service-datasource/src/default-datasource-driver-factory.ts — memory 分支(现 :449-452)只传 buildMemoryConfig(spec),而该函数(:273-278)只读 spec.config,不碰 spec.pool
  • InMemoryDriver 根本没有连接池概念 —— 与 sqlite 臂"驱动自己决定连接策略"是同一形状,只是更彻底:这里没有任何东西可以承接 pool

实测(worktree,#5714 分支的临时探针,通过工厂真实构造)

memory + pool{min:3,max:9}   driver config = {"persistence":false}   pool = undefined
sqlite + pool{min:3,max:9}   knex.client.config.pool = {"createTimeoutMillis":15000}   live pool = {"min":1,"max":1}
postgres + pool{min:3,max:9} knex config.pool = {"min":3,"max":9}     live pool = {"min":3,"max":9}

为什么单独记录而不是顺手修

#5714 的维护者裁决(2026-08-06,裁 B)明确把响亮拒绝的范围定在 sqlite / sqlite-wasm 两臂:"公开 authoring 面收紧已获维护者授权"是对那个集合授权的。把 memory 加进拒绝集合是再一次收紧公开 authoring 面,属于超出裁决的契约决策,按纪律必须回到分诊而不是由实现方自己扩。

因此 #5714 的 PR 里,POOL_UNSUPPORTED_DRIVER_IDS 只含 sqlite / sqlite-wasm,并在模块注释里指名本单 —— 让下一个读者看到这是已知且被刻意划界的洞,而不是漏看。

仓内标本

未发现:driver: 'memory' 的 9 处声明没有一处带 pool。所以这是"可写、会被静默吞掉"的 authoring 面缺陷,不是今天有人正在踩的线上问题 —— 严重度请分诊定。

候选修向

Blocked-by: #5714(拒绝 helper 与其 API 由该 PR 落地;本单只需扩集合 + 消息)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions