diff --git a/.github/actions/setup-rust-runtime/action.yaml b/.github/actions/setup-rust-runtime/action.yaml index e0341de93b83d..ad8fbaccc07e7 100644 --- a/.github/actions/setup-rust-runtime/action.yaml +++ b/.github/actions/setup-rust-runtime/action.yaml @@ -31,3 +31,14 @@ runs: run: | echo "RUST_BACKTRACE=1" >> $GITHUB_ENV echo "RUSTFLAGS=-C debuginfo=line-tables-only -C incremental=false" >> $GITHUB_ENV + # Work around intermittent "[16] Error in the HTTP2 framing layer" + # failures from curl when cargo fetches crates from crates.io. + # Disabling HTTP/2 multiplexing forces cargo to serialize requests, + # and raising retries makes transient network hiccups self-heal. + # + # Reference: + # https://doc.rust-lang.org/cargo/reference/config.html?#httpmultiplexing + # https://doc.rust-lang.org/cargo/reference/config.html?#netretry + echo "CARGO_HTTP_MULTIPLEXING=false" >> $GITHUB_ENV + echo "CARGO_NET_RETRY=10" >> $GITHUB_ENV + echo "CARGO_HTTP_RETRY=10" >> $GITHUB_ENV