Flaky: a_retry_waits_on_its_registration_and_another_backup_is_refused gets TableAlreadyExistsException

未关闭 适合新手
#951 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 5 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
78/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
rust
领域
databases, testing

调研方向

从 crates/engine/src/backup/tests.rs 中的 backup::tests::a_retry_waits_on_its_registration_and_another_backup_is_refused 开始;issue 指出了 claim_restore_delay 附近不稳定的时序问题,以及第 19469 行附近的断言。将固定延迟替换为由测试控制的闸门,在发送第二次恢复之前保持第一次注册处于打开状态。运行此测试,并确认第二次恢复始终返回 TableInUseException。

由索引模型根据 Issue 内容生成。

描述

ci:stability

backup::tests::a_retry_waits_on_its_registration_and_another_backup_is_refused in crates/engine/src/backup/tests.rs fails some CI runs with TableAlreadyExistsException("Table already exists: MusicRestored").

Runs that failed:

  • main at 89b94274e, run 42935162912, run-tests (stable), 2026-11-11 00:55 UTC. The panic is at tests.rs:19469, the assertion on the restore of the second backup. The Test runs of main at bf5ea8fc1 and 672d07c6e passed.
  • #900 at 91684d9e4, run 42950822755, run-tests (stable), 2026-11-11 03:13 UTC, with the same panic and message. run-tests (1.88.0) failed in the same run.

The test holds the first restore's registration for 400 ms (claim_restore_delay). It expects a restore of another backup into the same table name to answer TableInUseException while that registration is in flight. The failing runs answered TableAlreadyExistsException, the answer for a target that exists. That fits a second request that arrives after the first registration ended. The test then depends on the timing of the runner.

Proposed fix: hold the first registration until the test sends the second restore. A gate that the test opens can replace the fixed delay.

主要语言
Rust
星标
517
派生
60
平均合并
5 天 21 小时
30 天内合并 PR
110

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

ExtendDB/extenddb 的其他 Issue

查看 ExtendDB/extenddb 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。