fix(blocklist): retry on transient download failures (#122) #125
Reference in New Issue
Block a user
Delete Branch "worktree-fix-blocklist-bootstrap"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
getaddrinforounds-trip in <100ms.futures::future::join_all(different hosts, no shared-warming benefit from sequencing). Matches the pattern already used atsrc/api.rs:817.std::error::Error::source()chain when logging failures, so the reqwest warnings actually reveal what broke (TLS, DNS, connect refused) instead of the top-level "error sending request" blur the reporter hit.Test plan
cargo test --lib blocklist::— 13 tests pass, including two new ones:retry_succeeds_after_transient_failure— flaky TCP listener drops the first 2 connections, serves the 3rd. Asserts the body comes through.retry_gives_up_when_all_attempts_fail— more failures than retries, assertsNone.&[0, 0, 0]delay schedule via the test-onlyfetch_with_retry_delaysentrypoint; combined runtime ~20ms.make all— full lint + 346 unit tests green../tests/integration.sh release— all 99 integration tests pass across DNS resolution, caching, blocking, API, DoT, DoH, ODoH.