Skip to content
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

-Znext-solver=coherence: stack overflow #119905

Open
matthiaskrgr opened this issue Jan 12, 2024 · 3 comments
Open

-Znext-solver=coherence: stack overflow #119905

matthiaskrgr opened this issue Jan 12, 2024 · 3 comments
Labels
C-bug Category: This is a bug. I-hang Issue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative

Comments

@matthiaskrgr
Copy link
Member

Code

#![recursion_limit="1024"]
#![allow(dead_code)]

use std::mem;

pub struct S0<T>(T,T);
pub struct S1<T>(Option<Box<S0<S0<T>>>>,Option<Box<S0<S0<S1<S1<T>>>>>>);
pub struct S2<T>(Option<Box<T>>,Option<S3<T>>);
pub struct S3<T>(S5<T>,Option<Box<S2<S2<T>>>>);
pub struct S4<T>(Option<Box<S3<S3<T>>>>,Option<Box<S3<S3<T>>>>);
pub struct S5<T>(Option<Box<S4<S4<T>>>>,Option<Box<S4<S4<T>>>>,Option<T>);

trait Foo { fn xxx(&self); }
/// some local of #[fundamental] trait
trait Bar {}

impl<T> Foo for T where T: Sync, T: Bar {
    fn xxx(&self) {}
}

impl Foo for S5<u8> { fn xxx(&self) {} }

fn main() {
    let s = S5(None,None,None);
    s.xxx();
    assert_eq!(mem::size_of_val(&s.2), mem::size_of::<Option<u8>>());
}

Meta

rustc --version --verbose:

rustc 1.77.0-nightly (ce1f2ccf5 2024-01-12)
binary: rustc
commit-hash: ce1f2ccf5a5ac9343623bd115a05e4151d93af0d
commit-date: 2024-01-12
host: x86_64-unknown-linux-gnu
release: 1.77.0-nightly
LLVM version: 17.0.6

Error output

<output>
Backtrace

error: rustc interrupted by SIGSEGV, printing backtrace

/home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so(+0x2d6cc16)[0x7f1df876cc16]
/usr/lib/libc.so.6(+0x3e710)[0x7f1df585c710]
/home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so(+0x37dff57)[0x7f1df91dff57]

### cycle encountered after 3 frames with period 6
/home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so(+0x378a11c)[0x7f1df918a11c]
/home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so(+0x379b388)[0x7f1df919b388]
/home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so(+0x37e05ec)[0x7f1df91e05ec]
/home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so(+0x378a11c)[0x7f1df918a11c]
/home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so(+0x379b388)[0x7f1df919b388]
/home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so(+0x37e05ec)[0x7f1df91e05ec]
### recursed 42 times

/home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so(+0x378a11c)[0x7f1df918a11c]

note: rustc unexpectedly overflowed its stack! this is a bug
note: maximum backtrace depth reached, frames may have been lost
note: we would appreciate a report at https://github.com/rust-lang/rust
[1]    3560606 segmentation fault  rustc ff1f66b05db64ab43484975ddfc23cfa38b36db7.rs -Znext-solver=coherence

@matthiaskrgr matthiaskrgr added I-crash Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. C-bug Category: This is a bug. WG-trait-system-refactor The Rustc Trait System Refactor Initiative labels Jan 12, 2024
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Jan 12, 2024
@matthiaskrgr
Copy link
Member Author

Thread 2 "rustc" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe99ff6c0 (LWP 3793291)]
0x00007ffff57dff57 in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty
    () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
(gdb) bt
#0  0x00007ffff57dff57 in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#1  0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> ()
   from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#2  0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> ()
   from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#3  0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#4  0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> ()
   from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#5  0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> ()
   from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#6  0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#7  0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> ()
   from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#8  0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> ()
   from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#9  0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#10 0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> ()
   from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
--Type <RET> for more, q to quit, c to continue without paging--
58010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> ()
   from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#12 0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty
    () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#13 0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#14 0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#15 0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty
    () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#16 0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#17 0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#18 0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty
    () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#19 0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#20 0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#21 0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty
    () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#22 0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#23 0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#24 0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty
    () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#25 0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#26 0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#27 0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty
    () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#28 0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#29 0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#30 0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty
    () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#31 0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#32 0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#33 0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty
    () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#34 0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#35 0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#36 0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty
    () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#37 0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#38 0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#39 0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty
    () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#40 0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#41 0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#42 0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty
    () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#43 0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#44 0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#45 0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty
    () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#46 0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#47 0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#48 0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty
    () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#49 0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#50 0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#51 0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty
    () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#52 0x00007ffff578a11c in <rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#53 0x00007ffff579b388 in <&rustc_middle[cd7789d399d2e494]::ty::list::List<rustc_middle[cd7789d399d2e494]::ty::generic_args::GenericArg> as rustc_type_ir[d3658010caa06f94]::fold::TypeFoldable<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>> () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so
#54 0x00007ffff57e05ec in <rustc_next_trait_solver[421735b6e7086d37]::canonicalizer::Canonicalizer<rustc_infer[4a515b6443823c81]::infer::InferCtxt, rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt> as rustc_type_ir[d3658010caa06f94]::fold::TypeFolder<rustc_middle[cd7789d399d2e494]::ty::context::TyCtxt>>::fold_ty
    () from /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-b35442033d0dc6f2.so

@Noratrieb Noratrieb removed the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Jan 13, 2024
@compiler-errors
Copy link
Member

This code isn't stack-overflowing for me; it's hanging. However, I don't believe we have any guarantees that if the user pushes the recursion limit very very highly above the default that the compiler mustn't hang.

@compiler-errors compiler-errors added I-hang Issue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc. and removed I-crash Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ labels Mar 1, 2024
@lcnr
Copy link
Contributor

lcnr commented Mar 14, 2024

this hits the recursion limit in the old solver, the hang is expected fallout from using non-fatal overflow

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug. I-hang Issue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative
Projects
None yet
Development

No branches or pull requests

5 participants