The new SeparateBodyFileCache design makes updates/reads non-atomic
Chưa có ai nhận issue này.
- #435 của @princ0301 — đã đóng, không merge
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 28/100
Hướng nghiên cứu
Bắt đầu bằng cách xem xét thiết kế SeparateBodyFileCache được mô tả trong issue và cuộc thảo luận liên quan tại #325. Xác định cách các thao tác đọc và ghi metadata và body phải hoạt động khi một tiến trình bị crash hoặc nhiều tiến trình dùng chung một thư mục cache; công việc được xem là hoàn tất khi các entry chưa hoàn chỉnh không bị nhận diện là các cache entry hợp lệ và cả hai thao tác đều là atomic.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
The problem
Scenario 1
Program crashes after writing metadata but before writing body. Now the cache thinks the body is empty.
Scenario 2
Multiple processes using the same cache directory. Process A writes metadata, but not yet body. Process B gets metadata, then gets body, and now it thinks the body is empty.
Workarounds
For pip I added logic that basically pretends a cache entry is missing if it doesn't have both body and metadata files.
Solutions
Probably need both a new API that involves writing and reading both at once, and an implementation that makes sure that's atomic. See also the somewhat related #325.
- Ngôn ngữ chính
- Python
- Star
- 505
- Fork
- 153
- Merge trung bình
- 5 ngày 6 giờ
- Pull request đã merge (30 ngày)
- 5
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
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 psf/cachecontrol
-
Cache Deserialization (part two) -- warning message incorrect?Có thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
psf/cachecontrol#209 · 5 bình luận ·
-
Race condition in send()Có thể đã có người làm @JulienPalard đã nhận 147 ngày trước. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
psf/cachecontrol#424 · 1 bình luận ·
-
HTTP 302 Found responses with Cache Headers not being cachedCó thể đã có người làm @cburroughs đã nhận 280 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 42/100
psf/cachecontrol#384 · 18 bình luận ·
-
Head request is not cached even with cacheable_methods=("GET", HEAD") without a previous GETCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
psf/cachecontrol#337 · 6 bình luận ·
-
Investigate failure to load caches above `2^32 - 1` bytesCó thể làm lại được @woodruffw đã nhận 853 ngày trước và không có pull request nào đang mở. Đang mở
psf/cachecontrol#336 · 4 bình luận · 1 reaction · 1 người được giao ·
Tất cả issue của psf/cachecontrol
Issue tương tự
-
fix(accounts): Balance Sheet and Profit and Loss crash on PostgreSQL due to MySQL force_indexĐang mở
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Discord webhook notifications fail with HTTP 403 (Cloudflare blocks default urllib User-Agent)Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
tharje/spooler-v2#20 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Bump version of azure-servicebusCó thể đã có người làm @joostlek đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
home-assistant/core#186275 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100