-
Notifications
You must be signed in to change notification settings - Fork 13.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ICE: OutputTypeParameterMismatch #117951
Comments
A bisection using cargo-bisect-rustc (documentation and tutorials are available here; also: use the
It's likely the PR you will find fixing the issue on nightly will also need to be backported to beta. |
@lqd thanks for the directions. I will take a crack at that. Could you help me understand the release process… will there be any further promotions of changes in nightly to beta? Or is beta ‘locked in’ and explicit action is required to address this issue in beta? |
AFAICT beta has branched already and all further promotions will require explicit decisions and actions. But that’s extremely common and business as usual, there’s an entire section of the weekly compiler meeting dedicated to that. I could be wrong but I don’t believe crater runs have been done for the next beta yet, and that issue may also show up there (it would if your project was on crates.io for example), but even if not: once more details are known about the severity of the issue, how common it can be, how simple the fix is to backport, and so on, all will be taken into account when these decisions are made. This will all follow naturally once the PRs are identified. |
searched nightlies: from nightly-2023-10-17 to nightly-2023-10-22 bisected with cargo-bisect-rustc v0.6.7Host triple: x86_64-apple-darwin cargo bisect-rustc --start=2023-10-17 --end=2023-10-22 --access github --regress=ice --preserve --prompt -- build --release |
Had a few false starts here until I figured out the |
run again with searched nightlies: from nightly-2023-10-21 to nightly-2023-10-24 bisected with cargo-bisect-rustc v0.6.7Host triple: x86_64-apple-darwin cargo bisect-rustc --start=2023-10-21 --end=2023-10-24 --access github --regress=non-ice --preserve --prompt -- build --release |
Further searching 2023-10-24 to 2023-10-31
bisected with cargo-bisect-rustc v0.6.7Host triple: x86_64-apple-darwin cargo bisect-rustc --start=2023-10-24 --end=2023-10-31 --access github --regress=ice --preserve -- build --release--release |
Kind of unexpected, the PR that fixed the issue is about cargo and shouldn’t change how the compiler is called or behaves. Try double checking maybe, preferably with a script looking for the exact ICE message here rather than with --prompt. |
Yet
ICE at both start and end 🤔 |
repeating that with commit hashes
still ICE at both start and end 🤯 |
reproducing the search for the first regression within a wider date rangesearched nightlies: from nightly-2023-10-01 to nightly-2023-10-22 bisected with cargo-bisect-rustc v0.6.7Host triple: x86_64-apple-darwin cargo bisect-rustc --start=2023-10-01 --end=2023-10-22 --access github --regress=ice --preserve -- build --release -p mpc-fsm reproducing the return to non-ICEsearched nightlies: from nightly-2023-10-21 to nightly-2023-10-24 bisected with cargo-bisect-rustc v0.6.7Host triple: x86_64-apple-darwin cargo bisect-rustc --start=2023-10-21 --end=2023-10-24 --access github --regress=non-ice --preserve -- build --release -p mpc-fsm reproducing the search for the second occurrence of the regression within a wider date rangesearched nightlies: from nightly-2023-10-23 to nightly-2023-11-15 bisected with cargo-bisect-rustc v0.6.7Host triple: x86_64-apple-darwin cargo bisect-rustc --start=2023-10-23 --end=2023-11-15 --access github --regress=ice --preserve -- build --release -p mpc-fsm |
The latter, #116435, is again a PR that shouldn't have any effect in theory: it's a change to the new trait solver, and that is not used unless a We'd need to verify with a way to reproduce this issue: I'll mark this as needing an MCVE, but we don't need that reproducer to be minimal just yet. People can help reducing it afterwards. |
An ideas as to why I might see
when using a toolchain override with rustup… yet, I can not reproduce the build passing with cargo-bisect-rustc? (#117951 (comment)) |
Not easily without being able to reproduce the issue, unfortunately. |
I don’t yet have a minimized version of the issue, but I do have new information. There are several crates in the project. The crash occurs within Could it be the case that the compilation context would cause some specialization or ‘guidance’, even across crates? Does anything about this (the macros or the cross crate behavior) help with how I might attempt to minimize this issue (which is daunting given the size)? The ‘beta’ channel (now at The following is a redo of hunting for the original regression, but compiling with the context of the second crate, which gives a different answer compared to #117951 (comment) searched nightlies: from nightly-2023-10-17 to nightly-2023-10-22 bisected with cargo-bisect-rustc v0.6.7Host triple: x86_64-apple-darwin cargo bisect-rustc --start=2023-10-17 --end=2023-10-22 --access github --regress=ice --preserve -- build --release -p mpc-jni |
Relabeling issues which don't have a public runnable reproduction (as opposed to not having a minimized one) to the new label S-needs-repro. |
Meta
We have a weekly CI job with a build matrix of Rust versions
The last passing build was 2023-10-24. The following is a chronology.
2023-10-24
All rust versions PASS ✅
'1.65.0-x86_64-unknown-linux-gnu'
latest update on 2022-11-03, rust version 1.65.0 (897e375 2022-11-02)
'stable-x86_64-unknown-linux-gnu'
latest update on 2023-10-05, rust version 1.73.0 (cc66ad4 2023-10-03)
'beta-x86_64-unknown-linux-gnu'
latest update on 2023-10-21, rust version 1.74.0-beta.4 (489647f 2023-10-21)
'nightly-x86_64-unknown-linux-gnu'
latest update on 2023-10-24, rust version 1.75.0-nightly (cd674d6 2023-10-24)
2023-10-31
PASS for 1.65.0, stable, and beta ✅
'nightly-x86_64-unknown-linux-gnu'
(exact version already GC’ed from CI systems but, reproduced with 2023-10-30 nightly)
FAIL ❌
2023-11-07
PASS for 1.65.0 and stable ✅
'beta-x86_64-unknown-linux-gnu'
latest update on 2023-10-21, rust version 1.74.0-beta.4 (489647f 2023-10-21)
PASS ✅
'nightly-x86_64-unknown-linux-gnu'
latest update on 2023-11-07, rust version 1.75.0-nightly (189d6c7 2023-11-06)
FAIL ❌
2023-11-14
PASS for 1.65.0 and stable ✅
'nightly-x86_64-unknown-linux-gnu'
latest update on 2023-11-14, rust version 1.76.0-nightly (ba7c7a3 2023-11-13)
PASS ✅
'beta-x86_64-unknown-linux-gnu'
latest update on 2023-11-13, rust version 1.75.0-beta.1 (782883f 2023-11-12)
FAIL ❌
Summary:
Error output
Backtrace
Capture of Nightly failure (2023-10-31) ❌
rustc-ice-2023-10-31T16_49_05-19815.txt
Capture of Beta failure (2023-11-15) ❌
rustc-ice-2023-11-15.txt
Code
From 2023-10-24 to today the source code has not changed. The code is not public, but could potentially be shared. Unfortunately, the code is complex due to the use of a declarative macro, so we do not currently have a minimization.
We would welcome some hints/suggestions about what code/context we could capture to improve this issue.
The text was updated successfully, but these errors were encountered: