Skip to content

-Znext-solver=coherence: stack overflow #119905

Closed

Description

@matthiaskrgr

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

Activity

  1. added
    I-crashIssue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.
    I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
    T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
    C-bugCategory: This is a bug.
    WG-trait-system-refactorThe Rustc Trait System Refactor Initiative (-Znext-solver)
    on Jan 12, 2024
  2. added
    needs-triageThis issue may need triage. Remove when done. See docs forge.rust-lang.org/release/issue-triaging
    on Jan 12, 2024
  3. matthiaskrgr commented on Jan 12, 2024

    @matthiaskrgr
    MemberAuthor
    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
    
  4. removed
    needs-triageThis issue may need triage. Remove when done. See docs forge.rust-lang.org/release/issue-triaging
    on Jan 13, 2024
  5. compiler-errors commented on Mar 1, 2024

    @compiler-errors
    Contributor

    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.

  6. added
    I-hangIssue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc.
    and removed
    I-crashIssue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.
    I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
    on Mar 1, 2024
  7. lcnr commented on Mar 14, 2024

    @lcnr
    Contributor

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

  8. lcnr commented on Jan 28, 2026

    @lcnr
    Contributor

    this no longer hangs, it now terminates after 33s on my machine.

    We already have related tests here which also involve overflow and complex trait solver cycles, so I don't really want to add it to the test suite.

  9. matthiaskrgr commented on Jan 31, 2026

    @matthiaskrgr
    MemberAuthor

    @lcnr in case it helps, this does still stack-overflow with -Znext-solver=globally 😅

    error: rustc interrupted by SIGSEGV, printing backtrace
    
    /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-1c4195dec9454671.so(+0x3c159fc) [0x7ffa828159fc]
    /usr/lib/libc.so.6(+0x3e4d0) [0x7ffa7e83e4d0]
    /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-1c4195dec9454671.so(+0x5da3101) [0x7ffa849a3101]
    
    ### cycle encountered after 3 frames with period 4
    /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-1c4195dec9454671.so(+0x5da2b42) [0x7ffa849a2b42]
    /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-1c4195dec9454671.so(+0x5da35bf) [0x7ffa849a35bf]
    /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-1c4195dec9454671.so(+0x5da2b42) [0x7ffa849a2b42]
    /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-1c4195dec9454671.so(+0x5da35bf) [0x7ffa849a35bf]
    ### recursed 63 times
    
    /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-1c4195dec9454671.so(+0x5da2b42) [0x7ffa849a2b42]
    
    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
    help: you can increase rustc's stack size by setting RUST_MIN_STACK=16777216
    [1]    855485 segmentation fault  rustc so.rs -Znext-solver=globally
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.I-hangIssue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.WG-trait-system-refactorThe Rustc Trait System Refactor Initiative (-Znext-solver)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions