rust-lang / rust-lang/rust

Bootstrap tests fail when `git_merge_commit_email` in `src/stage0` contains square brackets

Open
#140,669 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

C-bug T-bootstrap
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

Summary

What the title says. This was found when integrating recent Rust changes into Ferrocene.

Command used

Change the git_merge_commit_email entry in src/stage0. For example

diff --git a/src/stage0 b/src/stage0
index 06080e3a8c1..70282328d22 100644
--- a/src/stage0
+++ b/src/stage0
@@ -1,7 +1,7 @@
 dist_server=https://static.rust-lang.org
 artifacts_server=https://ci-artifacts.rust-lang.org/rustc-builds
 artifacts_with_llvm_assertions_server=https://ci-artifacts.rust-lang.org/rustc-builds-alt
-git_merge_commit_email=bors@rust-lang.org
+git_merge_commit_email=bors[bot]@rust-lang.org
 nightly_branch=master

 # The configuration above this comment is editable, and can be changed

$ ./x test bootstrap -- ci_rustc
failures:
    core::builder::tests::ci_rustc_if_unchanged_do_not_invalidate_on_library_changes_outside_ci
    core::builder::tests::ci_rustc_if_unchanged_do_not_invalidate_on_tool_changes
Expected behaviour

The tests should pass.

Actual behaviour

The tests fail.

The root of the problem seems to be these two shell invocations of git rev-list. The argument of the --author flag is not a plaintext substring but a regular expression, when square bracket characters are passed unescaped then git fails to find the matching commit.

Bootstrap configuration (bootstrap.toml)
profile = "compiler"

[llvm]
download-ci-llvm = false

Note that the repro command will not build LLVM but llvm.download-ci-llvm = true makes bootstrap fail for a different reason that's not a bug.

Operating system

Ubuntu 22.04

HEAD

efcbb94dccbe0fcc1076f031f88332db4a6a2a52

Additional context
Build Log

Testing stage0 bootstrap (x86_64-unknown-linux-gnu)
configure: build.configure-args := ['--set', 'build.cargo=/home/jorge/git/github/ ...
configure: build.cargo          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: build.rustc          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: profile              := dist
WARNING: skipping TOML validation, need at least python 3.11
.configure: build.configure-args := ['--set', 'rust.deny-warnings=false', '--set', ...
configure: rust.deny-warnings   := False
configure: build.cargo          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: build.rustc          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: profile              := dist
WARNING: skipping TOML validation, need at least python 3.11
configure: build.configure-args := ['--set', 'rust.deny-warnings=false', '--set', ...
configure: rust.deny-warnings   := False
configure: build.cargo          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: build.rustc          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: build.cargo          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: build.rustc          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: profile              := dist
WARNING: skipping TOML validation, need at least python 3.11
configure: build.configure-args := ['--set', 'rust.deny-warnings=true', '--set',  ...
configure: rust.deny-warnings   := True
configure: build.cargo          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: build.rustc          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: profile              := dist
WARNING: skipping TOML validation, need at least python 3.11
configure: build.configure-args := ['--set', 'rust.deny-warnings=true', '--set',  ...
configure: rust.deny-warnings   := True
configure: build.cargo          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: build.rustc          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: build.cargo          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: build.rustc          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: profile              := dist
WARNING: skipping TOML validation, need at least python 3.11
configure: build.configure-args := ['--set', 'build.cargo=/home/jorge/git/github/ ...
configure: build.cargo          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: build.rustc          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: profile              := dist
WARNING: skipping TOML validation, need at least python 3.11
configure: build.configure-args := ['--set', 'build.cargo=/home/jorge/git/github/ ...
configure: build.cargo          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: build.rustc          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: build.cargo          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: build.rustc          := /home/jorge/git/github/rust-lang/rust/build/x8 ...
configure: profile              := dist
WARNING: skipping TOML validation, need at least python 3.11
.configure: build.configure-args := []
configure: profile              := dist
WARNING: skipping TOML validation, need at least python 3.11
.configure: build.configure-args := ['--set', 'rust.codegen-backends=cranelift']
configure: rust.codegen-backends := cranelift
configure: profile              := dist
WARNING: skipping TOML validation, need at least python 3.11
configure: build.configure-args := ['--set', 'rust.codegen-backends=cranelift,llv ...
configure: rust.codegen-backends := cranelift,llvm
configure: profile              := dist
WARNING: skipping TOML validation, need at least python 3.11
configure: build.configure-args := ['--enable-full-tools']
configure: rust.codegen-backends := ['llvm']
configure: rust.lld             := True
configure: rust.llvm-tools      := True
configure: rust.llvm-bitcode-linker := True
configure: build.extended       := True
configure: profile              := dist
WARNING: skipping TOML validation, need at least python 3.11
.configure: build.configure-args := ['--set', 'llvm.download-ci-llvm']
configure: llvm.download-ci-llvm := True
configure: profile              := dist
WARNING: skipping TOML validation, need at least python 3.11
.configure: build.configure-args := ['--set', 'target.x86_64-unknown-linux-gnu.cc= ...
configure: target.x86_64-unknown-linux-gnu.cc := gcc
configure: profile              := dist
WARNING: skipping TOML validation, need at least python 3.11
.configure: build.configure-args := ['--set', 'profile=compiler']
configure: profile              := compiler
WARNING: skipping TOML validation, need at least python 3.11
.configure: build.configure-args := ['--enable-full-tools']
configure: rust.codegen-backends := ['llvm']
configure: rust.lld             := True
configure: rust.llvm-tools      := True
configure: rust.llvm-bitcode-linker := True
configure: build.extended       := True
configure: build.configure-args := ['--disable-full-tools']
configure: rust.codegen-backends := ['llvm']
configure: rust.lld             := True
configure: rust.llvm-tools      := True
configure: rust.llvm-bitcode-linker := True
configure: build.extended       := True
configure: build.configure-args := ['--target=x86_64-unknown-linux-gnu']
configure: build.target         := ['x86_64-unknown-linux-gnu']
configure: build.configure-args := ['--target', 'x86_64-unknown-linux-gnu']
configure: build.target         := ['x86_64-unknown-linux-gnu']
.configure: build.configure-args := ['--target']
configure: profile              := dist
.configure: build.configure-args := ['--target']
configure: profile              := dist
configure: build.configure-args := ['--enable-option-checking', '--target']
configure: profile              := dist
configure: build.configure-args := ['--disable-option-checking', '--target']
configure: profile              := dist
.configure: build.configure-args := ['enable-full-tools']
configure: profile              := dist
configure: build.configure-args := ['--some-random-flag']
configure: profile              := dist
....invalid checksum:
    found:    334d016f755cd6dc58c53a86e183882f8ec14f52fb05345887c8a5edd42c87b7
    expected: 64ec88ca00b268e5ba1a35678a1b5316d212f4f366b2477232534a8aeca37f3c
..
----------------------------------------------------------------------
Ran 16 tests in 0.209s

OK
    Finished `test` profile [unoptimized] target(s) in 0.12s
     Running unittests src/lib.rs (build/bootstrap/x86_64-unknown-linux-gnu/debug/deps/bootstrap-e87f0dc0e173abcc)

running 4 tests

core::builder::tests::ci_rustc_if_unchanged_do_not_invalidate_on_library_changes_outside_ci ... F

core::builder::tests::ci_rustc_if_unchanged_do_not_invalidate_on_tool_changes ... F
..

failures:

---- core::builder::tests::ci_rustc_if_unchanged_do_not_invalidate_on_library_changes_outside_ci stdout ----
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "init"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "config" "user.name" "Tester"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "config" "user.email" "tester@rust-lang.org"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "add" "."
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "commit" "-m" "commit message"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "HEAD"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "branch" "-m" "main"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "add" "."
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "commit" "-m" "commit message"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "HEAD"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "--abbrev-ref" "HEAD"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "checkout" "-b" "previous-pr"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "add" "."
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "commit" "-m" "commit message"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "HEAD"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "switch" "main"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "merge" "--no-commit" "--no-ff" "previous-pr"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "--abbrev-ref" "HEAD"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "commit" "-m" "Merge of previous-pr into main" "--author" "Merge bot <bors[bot]@rust-lang.org>"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "branch" "-d" "previous-pr"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "HEAD"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "--abbrev-ref" "HEAD"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "checkout" "-b" "pr"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "add" "."
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "commit" "-m" "commit message"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "HEAD"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "switch" "main"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "merge" "--no-commit" "--no-ff" "pr"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "--abbrev-ref" "HEAD"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "commit" "-m" "Merge of pr into main" "--author" "Tester <tester@rust-lang.org>"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "branch" "-d" "pr"
Running cd "/tmp/.tmpLtHISf" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "HEAD"
No upstream commit found

thread 'core::builder::tests::ci_rustc_if_unchanged_do_not_invalidate_on_library_changes_outside_ci' panicked at src/bootstrap/src/core/builder/tests.rs:279:9:
assertion `left == right` failed
  left: None
 right: Some("0649f955c3852e14f487f7452e718b2a979ef8a0")
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- core::builder::tests::ci_rustc_if_unchanged_do_not_invalidate_on_tool_changes stdout ----
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "init"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "config" "user.name" "Tester"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "config" "user.email" "tester@rust-lang.org"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "add" "."
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "commit" "-m" "commit message"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "HEAD"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "branch" "-m" "main"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "add" "."
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "commit" "-m" "commit message"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "HEAD"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "--abbrev-ref" "HEAD"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "checkout" "-b" "previous-pr"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "add" "."
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "commit" "-m" "commit message"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "HEAD"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "switch" "main"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "merge" "--no-commit" "--no-ff" "previous-pr"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "--abbrev-ref" "HEAD"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "commit" "-m" "Merge of previous-pr into main" "--author" "Merge bot <bors[bot]@rust-lang.org>"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "branch" "-d" "previous-pr"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "HEAD"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "--abbrev-ref" "HEAD"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "checkout" "-b" "pr"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "add" "."
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "commit" "-m" "commit message"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "HEAD"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "switch" "main"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "merge" "--no-commit" "--no-ff" "pr"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "--abbrev-ref" "HEAD"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "commit" "-m" "Merge of pr into main" "--author" "Tester <tester@rust-lang.org>"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "branch" "-d" "pr"
Running cd "/tmp/.tmpwIiX51" && GIT_CONFIG_GLOBAL="/tmp/nonexistent" GIT_CONFIG_NOSYSTEM="1" GIT_CONFIG_SYSTEM="/tmp/nonexistent" "git" "rev-parse" "HEAD"
No upstream commit found

thread 'core::builder::tests::ci_rustc_if_unchanged_do_not_invalidate_on_tool_changes' panicked at src/bootstrap/src/core/builder/tests.rs:292:9:
assertion `left == right` failed
  left: None
 right: Some("0efdd41e85badec757d0f19550cb42e4df6152b1")


failures:
    core::builder::tests::ci_rustc_if_unchanged_do_not_invalidate_on_library_changes_outside_ci
    core::builder::tests::ci_rustc_if_unchanged_do_not_invalidate_on_tool_changes

test result: FAILED. 2 passed; 2 failed; 0 ignored; 0 measured; 116 filtered out; finished in 1.10s

error: test failed, to rerun pass `--lib`

I'm preparing a PR fixing the issue.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in src/build_helper/src/git.rs at the two shell invocations of git rev-list that use the --author argument. Read the failing core::builder tests named in the report, reproduce with square brackets in src/stage0, and verify those tests pass while matching the reported bootstrap behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, rust
Domain
build-system, testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.