flagd: align retry defaults with spec, fix retry `maxAttempts`, emit STALE on stream errors
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
- 68/100
Hướng nghiên cứu
Bắt đầu với config.py:31-32 và so sánh chính sách retry trong resolvers/grpc.py:105 và resolvers/process/connector/grpc_watcher.py:82 với đặc tả được tham chiếu. Đọc _state_change_callback tại grpc_watcher.py:178, _handle_rpc_error tại :273 và _wait_before_reconnect tại :318 để theo dõi việc xử lý lỗi stream. Hoàn tất khi các giá trị mặc định và maxAttempts khớp với đặc tả, đồng thời việc ngắt kết nối stream phát ra STALE rồi đến ERROR sau thời gian gia hạn retry.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
We must implement open-feature/flagd#2027, which proposes changing the spec defaults so the stream-reconnect backoff can't leave us disconnected longer than the stale grace period.
config.py:31DEFAULT_RETRY_BACKOFF_MAX: 12000 -> 5000config.py:32DEFAULT_RETRY_GRACE_PERIOD_SECONDS: 5 -> 10
Both resolvers also set maxAttempts to 3 (resolvers/grpc.py:105, resolvers/process/connector/grpc_watcher.py:82), but the spec's retry policy specifies 4 (the initial attempt plus retries at 1s, 2s, 4s); should be 3 -> 4. Harmless to fix now since nothing clamps at a 5000 cap.
Separately, we don't emit STALE on sync-stream errors. _state_change_callback (grpc_watcher.py:178) only emits STALE when the gRPC channel enters TRANSIENT_FAILURE, and a stream-level error doesn't change channel state, so _handle_rpc_error (:273) logs at debug and we silently wait retry_backoff_max_ms in _wait_before_reconnect (:318) before re-establishing. For that whole window we're disconnected while still reporting READY.
Measured on 0.5.2, in-process resolver, flagd latest:
| Scenario | Result |
|---|---|
stream_deadline_ms=3000, flagd untouched |
stream dies at 3.01s, reconnects at 15.01s, zero lifecycle events |
| default deadline, flagd killed for 1.3s | zero lifecycle events |
With the default stream_deadline_ms of 600000 that's a silent 12s disconnect every ~10 minutes. Java, Go and JS all emit STALE on stream error here, and per the spec a stream disconnect should emit STALE, then ERROR after retryGracePeriod.
- Ngôn ngữ chính
- Python
- Star
- 27
- Fork
- 33
- Merge trung bình
- 1 ngày 11 giờ
- Pull request đã merge (30 ngày)
- 20
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 open-feature/python-sdk-contrib
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
open-feature/python-sdk-contrib#439 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
UnleashProvider.track has the wrong signature: client.track raises TypeError instead of no-opCó thể đã có người làm @aepfli đã nhận 28 ngày trước. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
open-feature/python-sdk-contrib#433 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Restore the .gitmodules branch pins so Renovate tracks flagd submodule versions againCó thể đã có người làm @aepfli đã nhận 32 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
open-feature/python-sdk-contrib#421 ·
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 90/100
open-feature/python-sdk-contrib#417 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
fix(flagd): use custom channel credentials in RPC resolverCó thể đã có người làm @tuhinkanti đã nhận 11 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 35/100
open-feature/python-sdk-contrib#454 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của open-feature/python-sdk-contrib
Issue tương tự
-
Questions crashes on a real SQuAD2 no-answer predictionCó thể đã có người làm @HuaTNA đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
GST is read as Gulf Standard Time (UTC+4) instead of Guam Standard Time (UTC+10)Có thể đã có người làm @yang00333 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
DOI-USGS/dataretrieval-python#454 ·
Maintainer thường phản hồi trong vòng 4 ngày
-
area:core-platform effort:S priority:P3 status:in-review type:test
Độ khó 2/5 Dưới một giờ Mức phù hợp với người mới 80/100
randomparity/kdive#3246 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Requantification library converts m/z to mass with the hydrogen-atom mass instead of the proton massĐang mởbug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
nf-core/metaboigniter#130 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
netbox status: needs owner type: documentation
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 75/100
netbox-community/netbox#23412 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày