rust-lang / cargo-bisect-rustc

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

Cannot find regression due to suppressed merge commits #112

Closed tesuji closed 3 years ago

tesuji commented 3 years ago

When bisecting https://github.com/rust-lang/rust/issues/77638, bisect-rustc said that the regression is in nightly-2020-10-06, commit between 2020-10-05 and 2020-10-06. However, and it only searchs from rust-lang/rust@beb5ae474d2835962ebdf7416bd1c9ad864fe101 to rust-lang/rust@a1dfd2490a6cb456b92e469fa550dc217e20ad6d, which contains 8 commits, and none causing the regression:

finding bors merge commits
found 8 bors merge commits in the specified range
  commit[0] 2020-10-04UTC: Auto merge of #77023 - HeroicKatora:len-missed-optimization, r=Mark-Simulacrum
  commit[1] 2020-10-05UTC: Auto merge of #77466 - Aaron1011:reland-drop-tree, r=matthewjasper
  commit[2] 2020-10-05UTC: Auto merge of #77557 - Dylan-DPC:rollup-aib9ptp, r=Dylan-DPC
  commit[3] 2020-10-05UTC: Auto merge of #77552 - ecstatic-morse:body-def-id, r=lcnr
  commit[4] 2020-10-05UTC: Auto merge of #77549 - tmiasko:simplify-branch-same-fix, r=oli-obk
  commit[5] 2020-10-05UTC: Auto merge of #77543 - Mark-Simulacrum:rsp-quoting, r=eddyb
  commit[6] 2020-10-05UTC: Auto merge of #77171 - VFLashM:better_sso_structures, r=oli-obk
  commit[7] 2020-10-05UTC: Auto merge of #77080 - richkadel:llvm-coverage-counters-2, r=tmandry

Indeed, using git log directly show the same result:

$ git lg --author bors --since 2020-10-05 --until 2020-10-06 --date iso
* a1dfd2490a6 - Auto merge of #77080 - richkadel:llvm-coverage-counters-2, r=tmandry (33 hours ago)<bors>
* ea7e131435a - Auto merge of #77171 - VFLashM:better_sso_structures, r=oli-obk (35 hours ago)<bors>
* f317a93d4d3 - Auto merge of #77543 - Mark-Simulacrum:rsp-quoting, r=eddyb (2 days ago)<bors>
* d890e64dff3 - Auto merge of #77549 - tmiasko:simplify-branch-same-fix, r=oli-obk (2 days ago)<bors>
* 62bfcfd8a3b - Auto merge of #77552 - ecstatic-morse:body-def-id, r=lcnr (2 days ago)<bors>

But we aware that any merge commits merged before 00:00 UTC (daily time of rust-release) of the 2020-10-07 will be include in nightly-2020-10-06. Which mean that the correct command should be:

$ git lg --author bors --since '2020-10-06 00:00' --until '2020-10-07 00:00' --date=iso
* 59dafb876e1 - Auto merge of #77630 - Dylan-DPC:rollup-kfwl55z, r=Dylan-DPC (6 hours ago)<bors>
* 98edd1fbf8a - Auto merge of #77386 - joshtriplett:static-glibc, r=petrochenkov (8 hours ago)<bors>
* 9fdaeb393a1 - Auto merge of #76356 - caass:hooks, r=jyn514 (14 hours ago)<bors>
* 08e2d461661 - Auto merge of #73905 - matthewjasper:projection-bounds-2, r=nikomatsakis (16 hours ago)<bors>
* 5849a7eca90 - Auto merge of #77594 - timvermeulen:chain_advance_by, r=scottmcm (18 hours ago)<bors>
* 5ded3945532 - Auto merge of #77606 - JohnTitor:rollup-7rgahdt, r=JohnTitor (21 hours ago)<bors>

cc @Mark-Simulacrum

tesuji commented 3 years ago

Digging to the code, the commit is get from https://github.com/rust-lang/cargo-bisect-rustc/blob/08d2eed6694dd611c9bd5bb033c154b65ec74879/src/main.rs#L186

In bisecting https://github.com/rust-lang/rust/issues/77638, the regressed nightly is nightly-2020-10-06, which doesn't contain https://github.com/rust-lang/rust/pull/73905, it is included in nightly-2020-10-07.

I'm confused now. How does a not yet merged PR causing the regression ?