Skip to content

Bootstrap test ci_rustc_if_unchanged_logic fails locally #138239

Closed
@ehuss

Description

@ehuss
Contributor

Summary

The test ci_rustc_if_unchanged_logic fails if you are working on a branch that has any changes to library or compiler with:

---- core::builder::tests::ci_rustc_if_unchanged_logic stdout ----
Creating a sysroot for stage2 compiler (use `rustup toolchain link 'name' build/host/stage2`)
Building stage2 library artifacts (x86_64-unknown-linux-gnu)

thread 'core::builder::tests::ci_rustc_if_unchanged_logic' panicked at src/bootstrap/src/core/builder/tests.rs:267:9:
CI-rustc can't be used with 'if-unchanged' while there are changes in compiler and/or library.
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    core::builder::tests::ci_rustc_if_unchanged_logic

This makes it difficult to run tests locally. For example, running the x86_64-gnu docker image fails with this message.

I'm not entirely clear how this test works in CI, but it would be helpful if it didn't fail for local testing.

Command used

./x test bootstrap

or

 cargo run --manifest-path src/ci/citool/Cargo.toml run-local x86_64-gnu

Expected behaviour

Command should pass.

Actual behaviour

Test fails.

Bootstrap configuration (config.toml)

No config (use all defaults), or use the config in the x86_64-gnu image.

Operating system

Any

HEAD

39d5d92

Activity

added
C-bugCategory: This is a bug.
T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
on Mar 8, 2025
added
needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.
on Mar 8, 2025
added
A-download-rustcArea: The `rust.download-rustc` build option.
and removed
needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.
on Mar 8, 2025
onur-ozkan

onur-ozkan commented on Mar 8, 2025

@onur-ozkan
Member

The error message is pretty clear and it should never trigger when you have changes on compiler or library tree. I tried to reproduce it by adding dummy commit on compiler tree but x test bootstrap still did not fail.

ehuss

ehuss commented on Mar 8, 2025

@ehuss
ContributorAuthor

Hm, the following exact steps fail for me:

git clone https://github.com/rust-lang/rust.git
cd rust
git checkout -b bootstrap-test
echo "// test" >> library/std/src/lib.rs
git add library/std/src/lib.rs
git commit -m test
./x test bootstrap

Does that not fail for you?

onur-ozkan

onur-ozkan commented on Mar 8, 2025

@onur-ozkan
Member

That failed, yeah. I think the reason is that we allow using ci-rustc in non-CI environments when the library changes but the compiler doesn't (to make library development easier). I will stabilize the test and send a fix PR in couple minutes.

onur-ozkan

onur-ozkan commented on Mar 8, 2025

@onur-ozkan
Member

If you can confirm that #138245 fixes this issue, that would be great.

ehuss

ehuss commented on Mar 8, 2025

@ehuss
ContributorAuthor

Yea, that works, thanks!

added 4 commits that reference this issue on Mar 10, 2025

Rollup merge of rust-lang#138245 - onur-ozkan:ci-rustc-test-fix, r=ji…

19b5d58

Rollup merge of rust-lang#138245 - onur-ozkan:ci-rustc-test-fix, r=ji…

f6b7134

Rollup merge of rust-lang#138245 - onur-ozkan:ci-rustc-test-fix, r=ji…

c376c91

Rollup merge of rust-lang#138245 - onur-ozkan:ci-rustc-test-fix, r=ji…

752acaa

3 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-download-rustcArea: The `rust.download-rustc` build option.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

      Participants

      @ehuss@onur-ozkan@rustbot

      Issue actions

        Bootstrap test ci_rustc_if_unchanged_logic fails locally · Issue #138239 · rust-lang/rust