From 3243e4d426f337795a7da8a696803ad34e1eaaf5 Mon Sep 17 00:00:00 2001 From: Andy Aragon Date: Fri, 26 Jun 2026 11:23:35 -0700 Subject: [PATCH] ci: force HTTP/1.1 + retries for crates.io fetches (fix HTTP/2 download flake) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dependency downloads on CI runners intermittently fail with "[16] Error in the HTTP2 framing layer" (criterion's transitive deps — cast/alloca/oorandom/itertools — and others), reddening otherwise-passing jobs. Coverage, Test, MSRV (1.88), Boolean perf, and WASM Size Report all hit it across today's PRs, each needing a manual re-run. Set `[http] multiplexing = false` (HTTP/1.1 sidesteps the HTTP/2 multiplexing fault) + `[net] retry = 10` in .cargo/config.toml. Downloads only matter on a cold cache (mostly CI), so the local-dev cost is negligible. --- .cargo/config.toml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.cargo/config.toml b/.cargo/config.toml index 54a58288..bec8fd84 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -7,3 +7,15 @@ xtask = "run --manifest-path xtask/Cargo.toml --" # via xtask (disable with --no-simd). Not set here because rustflags in # config.toml overrides (doesn't append to) env RUSTFLAGS, and CI sets # RUSTFLAGS=-Dwarnings globally. + +# crates.io dependency downloads intermittently fail on CI runners with +# "[16] Error in the HTTP2 framing layer" (criterion's transitive deps — +# cast/alloca/oorandom/itertools — and others), reddening otherwise-passing +# jobs. Force HTTP/1.1 (sidesteps the HTTP/2 multiplexing fault) and retry +# transient network failures so dependency fetches are reliable. Downloads +# only matter on a cold cache (mostly CI), so the local-dev cost is negligible. +[http] +multiplexing = false + +[net] +retry = 10