bisect-rust icon indicating copy to clipboard operation
bisect-rust copied to clipboard

Bi-secting rustc fails with author mismatch

Open glaubitz opened this issue 6 years ago • 5 comments

I am currently trying to bisect https://github.com/rust-lang/rust/issues/50960 but that fails with the following error message about an unexpected authorship:

buildd@kapitsa:/srv/tmp/rust$ bisect --end 84203cac67e65ca8640b8392348411098c856985 --start d3ae9a9e08edf12de0ed82af57ba2a56c26496ea --test /srv/tmp/test.sh
Error: Expected author Brian Anderson to be bors for beb9a0dfc52ebda4f8db4e5d439e08e4f3a43a39
buildd@kapitsa:/srv/tmp/rust$

I am using the following test script:

buildd@kapitsa:/srv/tmp/rust$ cat /srv/tmp/test.sh 
#!/bin/bash
./configure --host=powerpc-unknown-linux-gnu --build=powerpc-unknown-linux-gnu --target=powerpc-unknown-linux-gnu --enable-local-rust --local-rust-root=/usr
./x.py build
./configure --host=powerpc-unknown-linux-gnu --build=powerpc-unknown-linux-gnu --target=powerpc-unknown-linux-gnu --enable-local-rust --local-rust-root=/srv/tmp/rust/build/build/powerpc-unknown-linux-gnu/stage2
./x.py build
buildd@kapitsa:/srv/tmp/rust$

Any suggestion on how to resolve this?

glaubitz avatar Jun 14 '18 11:06 glaubitz

I would suggest trying the successor to this tool, https://github.com/rust-lang-nursery/cargo-bisect-rustc. The test script you are using looks like it's intended for a regular git bisect, not for something like this tool (or cargo-bisect-rustc): you shouldn't need to building Rust yourself, rather I'd expect the tool to download relevant artifacts for you.

Mark-Simulacrum avatar Jun 14 '18 17:06 Mark-Simulacrum

I would suggest trying the successor to this tool, https://github.com/rust-lang-nursery/cargo-bisect-rustc.

Thanks, I will try that.

The test script you are using looks like it's intended for a regular git bisect

The script was basically a hack because there is no manual way of testing a commit, like with git bisect. I tried a normal git bisect, but that seems impossible with the rust tree as the commit history is completely non-linear.

you shouldn't need to building Rust yourself, rather I'd expect the tool to download relevant artifacts for you.

I just wanted to make sure it's using a known working version of the rust compiler for building the tree.

glaubitz avatar Jun 14 '18 17:06 glaubitz

Running git bisect in the Rust tree is possible -- you want to bisect only on commits whose author is bors, as those are guaranteed to build. cargo-bisect-rustc will only download those commits (artifacts don't exist for any other commits).

Mark-Simulacrum avatar Jun 14 '18 17:06 Mark-Simulacrum

The problem wasn't that individual commits wouldn't build. The problem is that git is simply throwing the towel directly after the start:

buildd@kapitsa:/srv/tmp/rust$ git bisect start
buildd@kapitsa:/srv/tmp/rust$ git bisect good d3ae9a9e08edf12de0ed82af57ba2a56c26496ea
buildd@kapitsa:/srv/tmp/rust$ git bisect bad 84203cac67e65ca8640b8392348411098c856985
Bisecting: a merge base must be tested
warning: unable to rmdir 'src/doc/rust-by-example': Directory not empty
[b65f0bedd2f22d9661ecb7092f07746dc2ccfb0d] Auto merge of #46735 - Manishearth:memchr-find, r=burntsushi
buildd@kapitsa:/srv/tmp/rust$

I know that b65f0bedd2f22d9661ecb7092f07746dc2ccfb0d is bad, so:

buildd@kapitsa:/srv/tmp/rust$ git bisect bad b65f0bedd2f22d9661ecb7092f07746dc2ccfb0d
The merge base b65f0bedd2f22d9661ecb7092f07746dc2ccfb0d is bad.
This means the bug has been fixed between b65f0bedd2f22d9661ecb7092f07746dc2ccfb0d and [d3ae9a9e08edf12de0ed82af57ba2a56c26496ea].
buildd@kapitsa:/srv/tmp/rust$

and that's it. Stuck here.

glaubitz avatar Jun 14 '18 17:06 glaubitz

Interesting, I've not seen that error before.

Mark-Simulacrum avatar Jun 15 '18 16:06 Mark-Simulacrum