Skip to content

bug(core/bulkWrite): 批量重试无幂等——驱动已提交但响应丢失时,重试导致整批重复插入 #3149

Description

@baozhoutao

已在 PR #3161(已合并到 main)中修复:bulkWritewriteBatch/writeOne 传入 attempt 计数;seed 按 externalId、import 按 matchFieldsattempt > 1 时回查已存在行、只补插缺失行——commit 后响应丢失的重试不再整批重复插入。纯 insert 模式(无自然键)按文档保持 at-least-once。回归测试见 packages/metadata-protocol/src/seed-loader-retry.test.tspackages/rest/src/import-runner-idempotency.test.ts

—— 原始 issue 内容 ——

问题

bulkWrite 的 transient 重试是 at-least-once 且无幂等手段:当驱动实际已提交、但成功响应在网络上丢失(turso 类 HTTP 驱动的真实故障形态——错误发生在 commit 之后)时,重试会把整批再插一遍

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions