Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
djkoloski opened this issue Aug 21, 2023 · 2 comments
Closed

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

djkoloski opened this issue Aug 21, 2023 · 2 comments
Labels
C-bug Category: This is a bug. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

Comments

@djkoloski
Copy link
Contributor

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

@djkoloski djkoloski added the C-bug Category: This is a bug. label Aug 21, 2023
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Aug 21, 2023
@Mark-Simulacrum
Copy link
Member

I'd be happy to see us drop the addition of the check, at least until there's an idea on how to make it not have false positives here.

@Noratrieb Noratrieb added T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) and removed needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. labels Aug 22, 2023
matthiaskrgr pushed a commit to matthiaskrgr/rust that referenced this issue Aug 22, 2023
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Aug 22, 2023
…n_check, r=compiler-errors

Disable bootstrap rustc version check

Mitigates rust-lang#115065
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this issue Aug 23, 2023
…n_check, r=compiler-errors

Disable bootstrap rustc version check

Mitigates rust-lang#115065
workingjubilee added a commit to workingjubilee/rustc that referenced this issue Oct 29, 2023
… r=Mark-Simulacrum

add bootstrap flag `--skip-stage0-validation`

This change introduces the `--skip-stage0-validation` flag, which permits the use of any desired version of the stage0 compiler without verifying its version.

Additionally, stage0 compiler validation check is reverted(rust-lang#115103) to its default enabled state.

Helps to rust-lang#115065

r? Mark-Simulacrum
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this issue Oct 29, 2023
… r=Mark-Simulacrum

add bootstrap flag `--skip-stage0-validation`

This change introduces the `--skip-stage0-validation` flag, which permits the use of any desired version of the stage0 compiler without verifying its version.

Additionally, stage0 compiler validation check is reverted(rust-lang#115103) to its default enabled state.

Helps to rust-lang#115065

r? Mark-Simulacrum
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this issue Oct 29, 2023
… r=Mark-Simulacrum

add bootstrap flag `--skip-stage0-validation`

This change introduces the `--skip-stage0-validation` flag, which permits the use of any desired version of the stage0 compiler without verifying its version.

Additionally, stage0 compiler validation check is reverted(rust-lang#115103) to its default enabled state.

Helps to rust-lang#115065

r? Mark-Simulacrum
rust-timer added a commit to rust-lang-ci/rust that referenced this issue Oct 29, 2023
Rollup merge of rust-lang#117043 - onur-ozkan:skip-stage0-validation, r=Mark-Simulacrum

add bootstrap flag `--skip-stage0-validation`

This change introduces the `--skip-stage0-validation` flag, which permits the use of any desired version of the stage0 compiler without verifying its version.

Additionally, stage0 compiler validation check is reverted(rust-lang#115103) to its default enabled state.

Helps to rust-lang#115065

r? Mark-Simulacrum
@djkoloski
Copy link
Contributor Author

Our use case is fixed by #117043

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
Projects
None yet
Development

No branches or pull requests

4 participants