Skip to content

Regression found in 1.67: Timeout downloading crates from custom registry #12077

@nbigaouette

Description

@nbigaouette

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: bugS-triageStatus: This issue is waiting on initial triage.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions