rust-lang / cargo-bisect-rustc

Bisects rustc, either nightlies or CI artifacts
https://rust-lang.github.io/cargo-bisect-rustc/
Apache License 2.0
174 stars 55 forks source link

bisects to commits that do not exist #294

Closed matthiaskrgr closed 8 months ago

matthiaskrgr commented 9 months ago

code, saved as treereduce.out from https://github.com/rust-lang/rust/issues/116303

#![feature(adt_const_params)]

#[derive(PartialEq, Eq)]
struct MyStr(str);
impl std::marker::ConstParamTy for MyStr {}

fn function_with_my_str<const S: &'static MyStr>() -> &'static MyStr {
    S
}

impl MyStr {
    const fn new(s: &'static str) -> &'static MyStr {
        unsafe { std::mem::transmute(s) }
    }
}

pub fn main() {
    let f = function_with_my_str::<{ MyStr::new("hello") }>();
}

bisected via

script.sh which contained

#!/bin/sh
! rustc /tmp/im/treereduce.out -Cinstrument-coverage |& grep -Ii "panic"

and `

 cargo-bisect-rustc --preserve --script=/home/matthias/vcs/github/rust_bisect/script.sh --test-dir=/home/matthias/vcs/github/rust_bisect/foo --start dbba594575ce75b1b57ccb1e4223b9909a28b1b8 --end c4190f2d3a46a59f435f7b42f58bc22b2f4d6917
bisecting ci builds
starting at dbba594575ce75b1b57ccb1e4223b9909a28b1b8, ending at c4190f2d3a46a59f435f7b42f58bc22b2f4d6917
opening existing repository at "rust.git"
Found origin remote under name `origin`
refreshing repository at "rust.git"
remote: Enumerating objects: 16, done.
remote: Counting objects: 100% (16/16), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 16 (delta 5), reused 14 (delta 5), pack-reused 0
Unpacking objects: 100% (16/16), 12.66 KiB | 762.00 KiB/s, done.
From https://github.com/rust-lang/rust
   18f02991535..361096fa4b7  master     -> origin/master
fetching (via local git) commits from dbba594575ce75b1b57ccb1e4223b9909a28b1b8 to c4190f2d3a46a59f435f7b42f58bc22b2f4d6917
opening existing repository at "rust.git"
Found origin remote under name `origin`
refreshing repository at "rust.git"
looking up first commit
looking up second commit
checking that commits are by bors and thus have ci artifacts...
finding bors merge commits
found 40 bors merge commits in the specified range
  commit[0] 2023-05-01: Auto merge of #111067 - albertlarsan68:fix-multiprocessing-x-py, r=jyn514
  commit[1] 2023-05-01: Auto merge of #111066 - matthiaskrgr:rollup-4k6rj23, r=matthiaskrgr
  commit[2] 2023-05-02: Auto merge of #106075 - nbdd0121:ffi-unwind, r=joshtriplett
  commit[3] 2023-05-02: Auto merge of #109521 - tmiasko:const-prop-validation, r=wesleywiser
  commit[4] 2023-05-02: Auto merge of #111089 - Dylan-DPC:rollup-b8oj6du, r=Dylan-DPC
  commit[5] 2023-05-02: Auto merge of #109128 - chenyukang:yukang/remove-type-ascription, r=estebank
  commit[6] 2023-05-02: Auto merge of #111082 - saethlin:box-assertkind, r=saethlin
  commit[7] 2023-05-02: Auto merge of #111028 - compiler-errors:attr-query-no-caching, r=cjgillot
  commit[8] 2023-05-02: Auto merge of #109729 - fortanix:raoul/bugfix_libtest_json_synchronization, r=pietroalbini
  commit[9] 2023-05-03: Auto merge of #110579 - nnethercote:restrict-From-for-Diagnostics, r=davidtwco
  commit[10] 2023-05-03: Auto merge of #111107 - weihanglo:update-cargo, r=weihanglo
  commit[11] 2023-05-03: Auto merge of #110846 - jdno:reduce-builder-sizes, r=pietroalbini
  commit[12] 2023-05-03: Auto merge of #110865 - cuviper:ct-ng-1.25, r=pietroalbini
  commit[13] 2023-05-03: Auto merge of #111153 - Dylan-DPC:rollup-0pq0hh3, r=Dylan-DPC
  commit[14] 2023-05-03: Auto merge of #111141 - ChrisDenton:ps-exitcode, r=jyn514
  commit[15] 2023-05-04: Auto merge of #111169 - Manishearth:rollup-55sfaad, r=Manishearth
  commit[16] 2023-05-04: Auto merge of #110806 - WaffleLapkin:unmkI, r=lcnr
  commit[17] 2023-05-04: Auto merge of #111174 - matthiaskrgr:rollup-ncnqivh, r=matthiaskrgr
  commit[18] 2023-05-04: Auto merge of #111210 - matthiaskrgr:rollup-doquh2n, r=matthiaskrgr
  commit[19] 2023-05-04: Auto merge of #111014 - klensy:no-rc, r=WaffleLapkin
  commit[20] 2023-05-05: Auto merge of #111231 - JohnTitor:rollup-a25ff8v, r=JohnTitor
  commit[21] 2023-05-05: Auto merge of #111236 - RalfJung:miri-sysroot, r=RalfJung
  commit[22] 2023-05-05: Auto merge of #111113 - scottmcm:assume-align-offset, r=thomcc
  commit[23] 2023-05-05: Auto merge of #111248 - Dylan-DPC:rollup-lbp0ui3, r=Dylan-DPC
  commit[24] 2023-05-05: Auto merge of #111258 - weihanglo:update-cargo, r=weihanglo
  commit[25] 2023-05-05: Auto merge of #111255 - flip1995:clippyup, r=Manishearth
  commit[26] 2023-05-06: Auto merge of #111271 - JohnTitor:rollup-t07qk1c, r=JohnTitor
  commit[27] 2023-05-06: Auto merge of #107129 - wesleywiser:musl_1.2_upgrade, r=petrochenkov
  commit[28] 2023-05-06: Auto merge of #104872 - luqmana:packed-union-align, r=oli-obk
  commit[29] 2023-05-06: Auto merge of #109421 - mhammerly:extern-force-option, r=petrochenkov
  commit[30] 2023-05-06: Auto merge of #111287 - matthiaskrgr:rollup-9lzax2c, r=matthiaskrgr
  commit[31] 2023-05-06: Auto merge of #110907 - Bryanskiy:privacy_ef, r=petrochenkov
  commit[32] 2023-05-06: Auto merge of #110972 - ehuss:remove-awscli, r=pietroalbini
  commit[33] 2023-05-06: Auto merge of #111304 - matthiaskrgr:rollup-b9twh7l, r=matthiaskrgr
  commit[34] 2023-05-07: Auto merge of #110693 - clubby789:x-clap-take-2, r=Mark-Simulacrum
  commit[35] 2023-05-07: Auto merge of #111311 - JohnTitor:rollup-vfpjm0d, r=JohnTitor
  commit[36] 2023-05-07: Auto merge of #111125 - xfix:inline-socketaddr-methods, r=Mark-Simulacrum
  commit[37] 2023-05-07: Auto merge of #111161 - compiler-errors:rtn-super, r=cjgillot
  commit[38] 2023-05-07: Auto merge of #111222 - scottmcm:constify-is_ascii, r=thomcc
  commit[39] 2023-05-07: Auto merge of #111224 - jyn514:default-tidy, r=pietroalbini
validated commits found, specifying toolchains

checking the start range to verify it passes
installing dbba594575ce75b1b57ccb1e4223b9909a28b1b8
testing...
RESULT: dbba594575ce75b1b57ccb1e4223b9909a28b1b8, ===> No

checking the end range to verify it does not pass
installing c4190f2d3a46a59f435f7b42f58bc22b2f4d6917
testing...
RESULT: c4190f2d3a46a59f435f7b42f58bc22b2f4d6917, ===> Yes

20 versions remaining to test after this (roughly 5 steps)
installing 74c4821045c68d42bb8b8a7c998bdb5c2a72bd0d
testing...
RESULT: 74c4821045c68d42bb8b8a7c998bdb5c2a72bd0d, ===> Yes

10 versions remaining to test after this (roughly 4 steps)
installing 71af5c4074cf1993551c10d8e4a1d6da9c27ce33
testing...
RESULT: 71af5c4074cf1993551c10d8e4a1d6da9c27ce33, ===> Yes

5 versions remaining to test after this (roughly 3 steps)
installing 7b99493492ad59c7a44c65373558175db42b4151
testing...
RESULT: 7b99493492ad59c7a44c65373558175db42b4151, ===> Yes

2 versions remaining to test after this (roughly 2 steps)
installing 1cb63572d271855a5ccef79a3e10a8015d00f6ad
testing...
RESULT: 1cb63572d271855a5ccef79a3e10a8015d00f6ad, ===> No

1 versions remaining to test after this (roughly 1 steps)
installing 5133e154590991203c84702ef59482f729b19bbf
testing...
RESULT: 5133e154590991203c84702ef59482f729b19bbf, ===> No

searched toolchains dbba594575ce75b1b57ccb1e4223b9909a28b1b8 through c4190f2d3a46a59f435f7b42f58bc22b2f4d6917

********************************************************************************
Regression in 7b99493492ad59c7a44c65373558175db42b4151
********************************************************************************

Attempting to search unrolled perf builds
Found commits ["0a662b24", "7ea20ff9", "f14b6984", "f9d9cdb0", "563d021c", "9a0b2515", "9265333d"]
installing 0a662b24081b7411e60c7d3690cea473a350d17e
testing...
RESULT: 0a662b24081b7411e60c7d3690cea473a350d17e, ===> No

installing 7ea20ff9c23c730159bb142e52500611bbc00eef
testing...
RESULT: 7ea20ff9c23c730159bb142e52500611bbc00eef, ===> No

installing f14b6984ef3555b08605d670a824a208c4a9e8c3
testing...
RESULT: f14b6984ef3555b08605d670a824a208c4a9e8c3, ===> No

installing f9d9cdb08339b33b0d54222f4c772362a8880228
testing...
RESULT: f9d9cdb08339b33b0d54222f4c772362a8880228, ===> No

installing 563d021ca768a63a567b11e0e4c749d38ecdce04
testing...
RESULT: 563d021ca768a63a567b11e0e4c749d38ecdce04, ===> No

installing 9a0b251595db987bcdb12442cb756a800f798468
testing...
RESULT: 9a0b251595db987bcdb12442cb756a800f798468, ===> Yes

Regression in https://github.com/rust-lang-ci/rust/commit/9a0b251595db987bcdb12442cb756a800f798468

what is interesting is that 9a0b251595db987bcdb12442cb756a800f798468 does not exist in my personal clone of the rustc repo, and https://github.com/rust-lang-ci/rust/commit/9a0b251595db987bcdb12442cb756a800f798468 404s :|

ehuss commented 9 months ago

I think that is normal. The unrolled perf builds are force-pushed to the try-perf branch. The commits will eventually get gc'd, and thus not preserved. You'll need to look at the rollup PR to determine which PR the unrolled commit corresponds to. Since cargo-bisect-rustc is parsing the comment with the PR list, it could probably retain the unrolled PR # and print that in additional to the commit hash.

lqd commented 8 months ago

cc @apiraino