Rustup downloads failing a lot recently

Recently, a lot of CI jobs for SQLx PRs have started failing with

/usr/share/rust/.cargo/bin/rustup toolchain install stable
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: latest update on 2020-12-31, rust version 1.49.0 (e1884a8e3 2020-12-29)
info: downloading component 'clippy'
info: downloading component 'rustfmt'
info: downloading component 'cargo'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: removing previous version of component 'clippy'
info: removing previous version of component 'rustfmt'
info: removing previous version of component 'cargo'
info: removing previous version of component 'rust-std'
info: removing previous version of component 'rustc'
info: installing component 'clippy'
info: using up to 500.0 MiB of RAM to unpack components
info: installing component 'rustfmt'
info: installing component 'cargo'
info: installing component 'rust-std'
info: installing component 'rustc'

  stable-x86_64-unknown-linux-gnu updated - rustc 1.49.0 (e1884a8e3 2020-12-29) (from rustc 1.48.0 (7eac88abb 2020-11-16))

info: checking for self-updates
error: could not download file from 'static.rust-lang.org/rustup/release-stable.toml' to '/tmp/rustup-updatewTSVK8/release-stable.toml'
error: caused by: failed to make network request
error: caused by: error sending request for url (static.rust-lang.org/rustup/release-stable.toml): connection error: Connection reset by peer (os error 104)
error: caused by: connection error: Connection reset by peer (os error 104)
error: caused by: Connection reset by peer (os error 104)
Error: The process '/usr/share/rust/.cargo/bin/rustup' failed with exit code 1

Combined with the currently very high number of CI jobs that need to succeed for CI to succeed and GitHub only offering to rerun all jobs at once (AFAIK), it's virtually impossible for CI to succeed there.

Is anybody else experiencing this problem?

Not experiencing it yet, but I've seen this class of problem many times in the past in CI environments. Well Travis CI was never as stable as github actions is now, shortly after launch. Travis's approach was to script retries on all tools like this. I wonder if you (well SQLX the project) is using the latest versions of the actions runners to run rustup? Could you offer a link? Those could implement the retry mechanism.

SQLx'es CI script is here, it uses actions-rs/toolchain@v1 (which seems to be the latest)

https://github.com/launchbadge/sqlx/blob/af7f2594457e991fd84a97a2170f79801fbdf1df/.github/workflows/sqlx.yml#L16

I suggest checking if there is a config option to that toolchain@v1 for retries and if not, propose that one be added?

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.