Test a_retry_waits_on_its_registration_and_another_backup_is_refused fails when the first restore finishes before the third request
Maintainers usually reply within 4 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 76/100
Research direction
Start with crates/engine/src/backup/tests.rs, especially the failing test and the nearby tests that use bulk_load_gate and closed_gate(). Hold the first restore's bulk load until after the third request assertion, then open the gate. Run backup::tests::a_retry_waits_on_its_registration_and_another_backup_is_refused; it should pass with the third request receiving TableInUseException.
Written by the indexing model from the issue text.
Description
What happens
backup::tests::a_retry_waits_on_its_registration_and_another_backup_is_refused in crates/engine/src/backup/tests.rs failed in the mongodb-rust job of #830's CI on 2026-11-07 (run 42325897438, job 128260989427):
panicked at crates/engine/src/backup/tests.rs:18576:5:
TableAlreadyExistsException("Table already exists: MusicRestored")
The same job passed twice on main at 76b9710dc and once on #411. #830 does not change crates/engine.
Why
The test sends three restore requests for the target MusicRestored:
claim_restore_delayholds the first request's registration for 400 ms.- A retry of the same request waits for that registration and gets the CREATING description.
- A restore of another backup into the same name expects
TableInUseException. A committed registration gives that answer while its restore job runs.
Nothing holds the first restore's job, and the backup has two items. If the job finishes before the third request, the table is ACTIVE, and the third request gets TableAlreadyExistsException. That is the answer in the failed run.
Suggested fix
Hold the first restore's bulk load with bulk_load_gate and a closed_gate(), as other tests in the same file do. Open the gate after the assertion on the third request.
Related: #740.
- Dominant language
- Rust
- Stars
- 517
- Forks
- 60
- Avg merge
- 5d 3h
- Merged PRs (30d)
- 79
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ExtendDB/extenddb
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 4 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 4 days
-
tests: two race tests share one boto3 client across threads and failed with TLSV1_ALERT_DECODE_ERROROpenci:stability
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 4 days
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 4 days
-
storage-sqlite: a restore slot test checks the slot before the copy frees itPossibly taken @Dodothereal claimed this today. Openci:stability sqlite
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 4 days
All issues in ExtendDB/extenddb
Similar issues
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
bug order-flow studies ui
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
userFRM/egui-charts#2417 ·
Maintainers usually reply within 1 day
-
In a plain-text message, Font, Font Size, Font Color and Text Highlight Color stay livePossibly taken @ragelfundionctrumnar claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
UCS-Care-Group/mailcraft#862 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
smoltcp-rs/smoltcp#1243 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day