Test a_retry_waits_on_its_registration_and_another_backup_is_refused fails when the first restore finishes before the third request

Đang mở Phù hợp với người mới
#908 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 4 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
76/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
rust
Lĩnh vực
testing

Hướng nghiên cứu

Bắt đầu với crates/engine/src/backup/tests.rs, đặc biệt là bài kiểm thử đang thất bại và các bài kiểm thử gần đó sử dụng bulk_load_gate và closed_gate(). Giữ thao tác tải hàng loạt của lần khôi phục đầu tiên ở trạng thái chờ cho đến sau phần assertion của yêu cầu thứ ba, rồi mở cổng. Chạy backup::tests::a_retry_waits_on_its_registration_and_another_backup_is_refused; bài kiểm thử sẽ chạy thành công và yêu cầu thứ ba nhận được TableInUseException.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug

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:

  1. claim_restore_delay holds the first request's registration for 400 ms.
  2. A retry of the same request waits for that registration and gets the CREATING description.
  3. 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.

Ngôn ngữ chính
Rust
Star
517
Fork
60
Merge trung bình
5 ngày 3 giờ
Pull request đã merge (30 ngày)
79

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của ExtendDB/extenddb

Tất cả issue của ExtendDB/extenddb

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.