HttpService retries rate-limited requests without honouring Retry-After
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ó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 55/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- node.js, typescript
- Lĩnh vực
- backend, networking
Hướng nghiên cứu
Start by locating HttpService and its get, getJson and download retry loops, then read how the project configures got retries. Check the tests for these methods and run them to establish current retry behavior. Done means all three methods use one retry layer, respect Retry-After with a maximum wait, and back off when the header is absent.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Bug
HttpService retries a rate-limited request (429) right away, ignoring when the server says the next try is allowed.
get and getJson wrap got in their own three-attempt loop, and download does the same around got.stream. These loops retry right away, without any delay. When a server answers 429, or 503, with a Retry-After header, the retries land inside the blocked window, so they fail the same way and add more load to an already limited server.
got also retries internally, with its own defaults, and the two retry layers multiply. One call can send up to nine requests.
Expected
- A 429 or 503 response with
Retry-Afterdelays the next attempt until that time, up to a sane maximum. If the wait would exceed the maximum, fail fast with the original error. - Without
Retry-After, back off between attempts instead of retrying immediately. - One retry layer: either got's
retryoptions (which honourRetry-After) or our loop, not both. get,getJsonanddownloadbehave the same.
Context
Found while making get/getJson fail fast on permanent 4xx errors (#7628). That change keeps retrying 408 and 429 but doesn't change their timing.
Opened by Claude Opus 5.5 in Claude Code on behalf of @viceice.
- Ngôn ngữ chính
- TypeScript
- Star
- 58
- Fork
- 65
- Merge trung bình
- 11 giờ 31 phút
- Pull request đã merge (30 ngày)
- 443
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Không 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 containerbase/base
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
containerbase/base#7891 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
containerbase/base#7842 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
priority-3-normal tool/dotnet
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 78/100
containerbase/base#5996 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
git prebuild (OpenSSL) breaks HTTPS on FIPS-enabled hosts: "Insufficient randomness"Có thể đã có người làm @ollie-sutton đã nhận hôm nay. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
containerbase/base#7922 · 1 reaction ·
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 35/100
containerbase/base#7908 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của containerbase/base
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Automattic/data-liberation-agent#953 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
README に GitHub の組織のバッジを足すĐang mởdocumentation
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
funmary-app/funmary#399 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:curator enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
CassioDalla/Scrinalia#150 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
status: needs-triage v1-bug-bash
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
a2ui-project/a2ui#3533 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
backend enhancement priority:P3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
geolens-io/geolens#3310 ·
Maintainer thường phản hồi trong vòng 1 ngày