Skip to content

Bumping rustc version in-tree causes Fuchsia builders to fail #115065

Closed
@djkoloski

Description

@djkoloski

Fuchsia's rustc builders bootstrap using betas that we also build ourselves. When src/version is updated (as in #115034), there's a period of time where the beta referred to by stage0.json is not allowed to build tip of tree.

The beta given by stage0.json normally points to a beta with version latest - 1 (because bootstrapping uses the previous beta). This is okay because Config::check_build_rustc_version in src/bootstrap/config.rs allows the beta to be one minor version out of date. When src/version is bumped, the beta temporarily becomes two versions behind, failing the rustc version check and causing our CI to start failing. This is fixed when stage0.json is updated (as it last was in #113637) and the new current beta is back to only being one version behind.

Last time this happened, the time between updating src/version and stage0.json were out of sync for a little over two weeks (#112023 to #113637). I think we left a few comments here and there about the situation but we ended up putting out some other fires for a while instead.

I suspect that this isn't a problem in rust-lang CI because the check is only done if a bootstrap rustc is explicitly provided. I don't believe rust-lang CI does this, which causes it to just download and use the beta listed in stage0.json without doing the version check. If it did do the version check, then it would also fail.

Can we add a flag that instructs bootstrap to skip the version check? We're still using stage0.json to pick the beta for bootstrapping in Fuchsia, it's just that bootstrap doesn't know that and does the version check unnecessarily.

cc @jyn514 for bootstrap and @Mark-Simulacrum for merges

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions