-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Description
Problem
I am in the process of updating to 1.69 in some repos and found what I believe to be a regression.
The CI process started to fail trying to download the crates from a custom registry (named internal-registry
here):
warning: spurious network error (1 tries remaining): [28] Timeout was reached (download of `mycrate v0.1.0 (registry `internal-registry`)` failed to transfer more than 10 bytes in 30s)
error: failed to download from `https://example.com/api/v1/crates/mycrate/0.1.0/download`
Caused by:
[28] Timeout was reached (download of `mycrate v0.1.0 (registry `internal-registry`)` failed to transfer more than 10 bytes in 30s)
At first a connection issue was though to be causing this, but the problem was constant over many weeks. Adding a curl
call to download the crate right before the cargo
call was able to download the crate too so it isn't caused by a network issue.
Unfortunately the problem occurs inside Jenkins (using a kubernetes
agent) and I cannot reproduce this locally (macOS). Jobs were ran with all Rust versions since 1.60 to see if it could be caused by the toolchain update.
All versions from 1.60 to 1.66 succeeded in CI, while 1.67 stopped working with the error above.
Looking at cargo CHANGELOG for 1.67 the only line that jumps to me is the last one of the Changed section:
Updated the internal HTTP library libcurl with various fixes and updates. #11307 #11326
Looking at #11307 in particular mentions the update:
libcurl from 7.83.1 to 7.86.0
A lot has changed between those two libcurl versions so I'm not sure what to look for.