Open
Description
In #101680 (af619eb#diff-f699f7fa1d6499f96d393ebaf6be4031125d026a7b6a18d6ecb8ee4e875fa197R161), I changed the Err(NoSolution)
to a bug!()
. The issue-42552
test originally covered this case, but seems like that's not the case anymore. Instead, when attempting a try run the hyper-0.14.18
benchmark in rustc-perf failed to build.
This issue is basically a call to minimize that failure and add a test to the test suite so we properly capture that bug path.
To do this, you will need to make a local change like the above, calling bug!()
instead of returning Err(NoSolution)
. Then, you can minimize the hyper-0.14.18
benchmark.
Metadata
Metadata
Assignees
Labels
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
jackh726 commentedon Sep 11, 2022
This actually might not be the cause, will update later.
(That PR does have problems with hyper but not the test suite, though. So there is an untested bug path.)
jackh726 commentedon Sep 12, 2022
Okay, so the failure was actually caused by the other changes in that PR (specifically, that project predicates without bound vars were accidently not getting registered).
In hyper, it's this method that ICEs: https://github.com/rust-lang/rustc-perf/blob/ff4e6fb9246ac08771107f4498bdb4e3f84007a0/collector/benchmarks/hyper-0.14.18/src/service/make.rs#L84
The key predicate is the
T: for<'a> Service<&'a Target, Error = ME, Response = S, Future = F>
, which must be registered to not ICE (and wasn't because it has bound vars). This should help to make a MCVE.I'm keeping the buggy code in a branch here: https://github.com/jackh726/rust/tree/implied-cleanup-old. This passes the rustc test suite but fails to build hyper.