Pool::extend can deadlock when the iterator accesses the same pool Copy
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 55/100
Hướng nghiên cứu
Locate Pool::extend and compare its lock handling with retain, which the issue says documents its non-reentrancy requirement. First inspect the implementation and nearby tests, then reproduce the deadlock with a lazy iterator that calls status() on the same pool. Done means the behavior is covered by a regression test and iterator evaluation no longer deadlocks.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
I noticed that Pool::extend consumes the iterator while holding the pool mutex. If a lazy iterator calls back into the same pool, for example through status(), it can deadlock.
I saw that retain explicitly documents its non-reentrancy requirement, but extend doesnt. Was holding the lock across iterator evaluation intentional for batch insertion, or would it make sense to consume values outside the lock?
Happy to add a regression test and look into a fix if the latter is preferred.
- Ngôn ngữ chính
- Rust
- Star
- 277
- Fork
- 44
- Merge trung bình
- 1 ngày 1 giờ
- Pull request đã merge (30 ngày)
- 41
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của apache/asyncband
-
Investigate unsound mapped RwLock write guard downgradingCó thể đã có người làm @orthur2 đã nhận 1 ngày trước. Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
apache/asyncband#362 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement good first issue help wanted
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
apache/asyncband#324 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Discuss shared broadcast receives without a Clone boundCó thể đã có người làm @orthur2 đã nhận 2 ngày trước. Đang mởenhancement question
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
apache/asyncband#312 · 5 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement help wanted
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
apache/asyncband#298 · 5 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
apache/asyncband#272 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của apache/asyncband
Issue tương tự
-
Trash, bin or rubbish?Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 63/100
pop-os/cosmic-files#2117 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
L: java:gradle L: java:maven L: ruby:bundler T: bug 🐞
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
dependabot/dependabot-core#16547 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug status:ready-for-test
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
UniClipboard/UniClipboard#1985 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 75/100
RustCrypto/SSH#596 ·
-
area:breg rust
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
registrystack/registry-stack#2034 ·
Maintainer thường phản hồi trong vòng 1 ngày