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

Async GraphQL DataLoader Causes Compiler Panic During CodeGen #96962

Closed
cadillion opened this issue May 12, 2022 · 1 comment
Closed

Async GraphQL DataLoader Causes Compiler Panic During CodeGen #96962

cadillion opened this issue May 12, 2022 · 1 comment
Labels
C-bug Category: This is a bug. 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.

Comments

@cadillion
Copy link

cadillion commented May 12, 2022

Code

Hunted down and commented out the offending code and got the app to recompile. After uncommenting again it then worked fine. Can't reproduce since.

use std::collections::HashMap;
use std::sync::Arc;

use actix_web::{guard, rt::spawn, web, App, HttpRequest, HttpResponse, HttpServer};
use anyhow::Result;
use async_graphql::dataloader::{DataLoader, Loader};
use async_graphql::http::{playground_source, GraphQLPlaygroundConfig};
use async_graphql::{
    ComplexObject, Context, EmptyMutation, EmptySubscription, Error, InputValueError,
    InputValueResult, MergedObject, Object, Scalar, ScalarType, Schema, SimpleObject, Value,
};
use async_graphql_actix_web::{GraphQLRequest, GraphQLResponse};
use chrono::{DateTime, Utc};
use paste::paste;
use lazy_static::lazy_static;
use sqlx::pool::Pool;
use sqlx::postgres::{PgPoolOptions, Postgres as Pg};
use uuid::Uuid;

pub type AppSchema = Schema<Query, EmptyMutation, EmptySubscription>;

trait Optional<T> {
    fn unwrap_or(self, default: T) -> T;
}

// Convenience trait to enable arbitrary swapping of Option<Uuid> and Uuid
impl Optional<Uuid> for Uuid {
    fn unwrap_or(self, _: Uuid) -> Uuid {
        self
    }
}

lazy_static! {
    static ref DATABASE_URL: String =
        std::env::var("DATABASE_URL").expect("Can't read Postgres database address");
}

pub struct Postgres {
    pub pool: Pool<Pg>,
}

impl Postgres {
    pub async fn new() -> Result<Self> {
        let pool = PgPoolOptions::new()
            .max_connections(5)
            .connect(DATABASE_URL.as_str())
            .await?;

        Ok(Self { pool })
    }
}

pub struct Repository {
    pub pg_port: Postgres,
}

impl Repository {
    pub async fn new() -> anyhow::Result<Repository, Error> {
        let pg_port = Self::pg_connect().await?;

        Ok(Repository { pg_port })
    }

    async fn pg_connect() -> anyhow::Result<Postgres, Error> {
        let connection = Postgres::new().await?;
        Ok(connection)
    }
}

#[derive(sqlx::FromRow, SimpleObject, Debug, Clone)]
#[graphql(complex)]
pub struct Suitability {
    pub uuid: Uuid,
    pub user_id: Uuid,
    pub answer_id: Uuid,
    created_at: DateTime<Utc>,
    updated_at: DateTime<Utc>,
}

#[derive(sqlx::FromRow, SimpleObject, Debug, Clone)]
#[graphql(complex)]
pub struct SuitabilityAnswer {
    pub uuid: Uuid,
    pub question_id: Uuid,
    answer_order: i32,
    answer: String,
    pub is_valid: bool,
    created_at: DateTime<Utc>,
    updated_at: DateTime<Utc>,
}

#[derive(sqlx::FromRow, SimpleObject, Debug, Clone)]
#[graphql(complex)]
pub struct SuitabilityQuestion {
    pub uuid: Uuid,
    question_order: i32,
    question: String,
    tooltip: Option<String>,
    pub is_valid: bool,
    created_at: DateTime<Utc>,
    updated_at: DateTime<Utc>,
}

#[derive(sqlx::FromRow, Clone, Debug, SimpleObject)]
#[graphql(complex)]
pub struct User {
    pub uuid: Uuid,
    username: String,
    email: CiText,
    password: String,
    created_at: DateTime<Utc>,
    updated_at: DateTime<Utc>,
}

#[derive(sqlx::Type, Clone, Debug)]
#[sqlx(type_name = "citext")]
pub struct CiText(String);

#[Scalar]
impl ScalarType for CiText {
    fn parse(value: Value) -> InputValueResult<Self> {
        match value {
            Value::String(s) => Ok(CiText(s)),
            _ => Err(InputValueError::expected_type(value)),
        }
    }

    fn is_valid(value: &Value) -> bool {
        matches!(value, Value::String(_))
    }

    fn to_value(&self) -> Value {
        let CiText(ref s) = self;
        Value::String(s.clone())
    }
}

macro_rules! impl_data_loaders {
    ($($schema:ty[$($entity:ty[$($search:ident),*][$($child:ty[$fkey:ident, $pkey:ident, $fun:ident]),*]),+]),+) => {
        paste! {
            impl Postgres {
                $($(
                    #[doc = "Returns a list of all rows in the " [< $entity:snake:lower:plural >] " table."]
                    pub async fn [< $entity:snake:lower:plural >](&self, limit: Option<usize>, offset: Option<usize>, order_by: Option<Vec<String>> ) -> Result<Vec<$entity>> {
                        let list = sqlx::query_as::<_, $entity>(
                                &format!(
                                    concat!(
                                        "SELECT * FROM ",
                                        stringify!([< $schema:snake:lower >].[< $entity:snake:lower:plural >]),
                                        " ORDER BY {} LIMIT {} OFFSET {}"
                                    ),
                                    order_by
                                        .unwrap_or(vec!["created_at".to_string()])
                                        .iter()
                                        .fold(String::new(), |acc, string| match acc.is_empty() {
                                            true => format!("\"{}\" ASC", string),
                                            _ => format!("{}, \"{}\" ASC", acc, string),
                                        }),
                                    match limit {
                                        Some(i) => i.to_string(),
                                        None => "NULL".to_string(),
                                    },
                                    offset.unwrap_or(0),
                                )
                            )
                            .fetch_all(&self.pool)
                            .await?;

                        Ok(list)
                    }

                    $(
                        #[doc = "Returns a list of all rows in the " [< $entity:snake:lower:plural >] " table for a set of IDs"]
                        pub async fn [< $entity:snake:lower:plural _by_ $search:snake:lower:plural >](&self, ids: Vec<String>) -> Result<Vec<$entity>> {
                            let sql = format!(
                                "SELECT * FROM {} WHERE {} IN ('{}')",
                                stringify!([< $schema:snake:lower >].[< $entity:snake:lower:plural >]),
                                stringify!($search),
                                ids.join("','"),
                            );

                            let list = sqlx::query_as::<_, $entity>(&sql)
                                .fetch_all(&self.pool)
                                .await?;

                            Ok(list)
                        }
                    )*
                )+)+
            }

            $($(
                #[derive(Default)]
                pub struct [< $entity:camel Query >];

                #[Object]
                impl [< $entity:camel Query >] {
                    async fn [< $entity:snake:lower:plural >](&self, ctx: &Context<'_>, limit: Option<usize>, offset: Option<usize>, order_by: Option<Vec<String>>) -> Result<Vec<$entity>, Error> {
                        let config = ctx.data::<Arc<Repository>>()?;
                        let v = config.pg_port.[< $entity:snake:lower:plural >](limit, offset, order_by).await?;
                        Ok(v)
                    }
                }

                #[ComplexObject]
                impl $entity {
                    $(
                        async fn [< $fun >](&self, ctx: &Context<'_>) -> async_graphql::Result<Vec<$child>> {
                            let data_loader = ctx
                                .data::<DataLoader<[< $entity:camel $child:camel $fkey:camel $pkey:camel Loader >]>>()?;

                            let _id = self
                                .$fkey
                                .unwrap_or(Uuid::nil())
                                .to_string()
                                .parse::<Uuid>()?;

                            let v = data_loader.load_one(_id).await?;

                            match v {
                                Some(vec) => Ok(vec),
                                None => Ok(Vec::<$child>::new()),
                            }
                        }
                    )*
                }

                $(
                    pub struct [< $entity:camel $child:camel $fkey:camel $pkey:camel Loader >] {
                        pub connection: Arc<Repository>,
                    }

                    #[async_trait::async_trait]
                    impl Loader<Uuid> for [< $entity:camel $child:camel $fkey:camel $pkey:camel Loader >] {
                        type Value = Vec<$child>;
                        type Error = Error;

                        async fn load(
                            &self,
                            keys: &[Uuid],
                        ) -> Result<HashMap<Uuid, Self::Value>, Self::Error> {
                            let keys_as_strings: Vec<String> = keys
                                .iter()
                                .map(|k| k.to_string())
                                .collect();

                            let vec = self
                                .connection
                                .pg_port
                                .[< $child:snake:lower:plural _by_ $pkey s >](keys_as_strings)
                                .await?;

                            let mut m = HashMap::<Uuid, Vec<$child>>::new();

                            for v in vec {
                                let option_id = v
                                    .$pkey
                                    .unwrap_or(Uuid::nil());

                                m.entry(option_id)
                                    .or_insert_with(Vec::new)
                                    .push(v);
                            }

                            Ok(m)
                        }
                    }
                )*
            )+)+

            #[derive(MergedObject, Default)]
            pub struct Query(
                $($(
                    [< $entity:camel Query >],
                )+)+
            );

            // Spawn processes to load data concurrently from reference-counted shared connection
            pub fn create_schema_with_context(connection: Repository) -> AppSchema {
                let pool = Arc::new(connection);

                $($($(
                    let [< $entity:snake:lower _ $child:snake:lower _ $fkey:snake:lower _ $pkey:snake:lower _loader >] = DataLoader::new(
                        [< $entity:camel $child:camel $fkey:camel $pkey:camel Loader >] {
                            connection: Arc::clone(&pool),
                        },
                        spawn,
                    )
                    .max_batch_size(250);
                )*)+)+

                Schema::build(Query::default(), EmptyMutation, EmptySubscription)
                    // .limit_depth(3).limit_complexity(15) // limits are commented out, because otherwise introspection query won't work
                    .data(pool)
                    $($($(.data([< $entity:snake:lower _ $child:snake:lower _ $fkey:snake:lower _ $pkey:snake:lower _loader >]))*)+)+
                    .finish()
            }
        }
    }
}

impl_data_loaders! {
    Public[
        Suitability[uuid, user_id, answer_id][
            SuitabilityAnswer[answer_id, uuid, suitability_answer],
            User[user_id, uuid, user]
        ],
        SuitabilityAnswer[uuid, question_id, is_valid][
            Suitability[uuid, answer_id, suitability],
            //*******************************************
            // The next line is the line it choked on
            //*******************************************
            SuitabilityQuestion[question_id, uuid, suitability_question]
        ],
        SuitabilityQuestion[uuid, is_valid][
            SuitabilityAnswer[uuid, question_id, suitability_answers]
        ]
    ],
    Private[
        User[uuid, email, username][
            Suitability[uuid, user_id, suitability]
        ]
    ]
}

pub struct Config {
    pub addr: std::net::SocketAddr,
    pub state_data: web::Data<AppState>,
}

pub struct AppState {
    pub schema: AppSchema,
}

impl Config {
    pub async fn new() -> anyhow::Result<Config> {
        let port: u16 = std::env::var("PORT")
            .ok()
            .and_then(|p| p.parse().ok())
            .unwrap_or(3003);
        let addr = std::net::SocketAddr::from(([0, 0, 0, 0], port));

        // Create app state data to be available in all web transactions
        let state = create_app_state().await?;
        let state_data = web::Data::new(state);

        let config = Config { addr, state_data };
        Ok(config)
    }
}

pub async fn create_app_state() -> anyhow::Result<AppState> {
    let app_state = AppState {
        schema: create_schema_with_context(
            Repository::new()
                .await
                .expect("Could not connect to postgres"),
        ),
    };
    Ok(app_state)
}

async fn index(req: GraphQLRequest, state: web::Data<AppState>) -> GraphQLResponse {
    let response = state.schema.execute(req.into_inner()).await;

    response.into()
}

async fn index_playground() -> HttpResponse {
    HttpResponse::Ok()
        .content_type("text/html; charset=utf-8")
        .body(playground_source(
            GraphQLPlaygroundConfig::new("/").subscription_endpoint("/"),
        ))
}

pub fn configure_service(cfg: &mut web::ServiceConfig) {
    cfg.service(
        web::resource("/")
            .route(web::post().to(index))
            .route(web::get().to(index_playground)),
    );
}

#[actix_web::main]
async fn main() -> anyhow::Result<()> {
    // used only in local environment. stage + prod environments get all their secrets via process env vars
    dotenv::from_filename(".env.local").ok();

    #[cfg(debug)]
    env_logger::init();

    let Config { addr, state_data } = Config::new().await?;

    HttpServer::new(move || {
        App::new()
            .configure(configure_service)
            .app_data(state_data.clone())
    })
    .bind(addr)?
    .run()
    .await?;

    Ok(())
}

Meta

rustc --version --verbose:

rustc 1.58.1 (db9d1b20b 2022-01-20)
binary: rustc
commit-hash: db9d1b20bba1968c1ec1fc49616d4742c1725b4b
commit-date: 2022-01-20
host: aarch64-unknown-linux-gnu
release: 1.58.1
LLVM version: 13.0.0

Error output

  thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/compiler/rustc_hir/src/definitions.rs:452:14
  
  error: internal compiler error: unexpected panic
  
  note: the compiler unexpectedly panicked. this is a bug.
  
  note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.58.1 (db9d1b20b 2022-01-20) running on aarch64-unknown-linux-gnu

note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental --crate-type lib

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [evaluate_obligation] evaluating trait selection obligation `for<'r, 's, 't0> {core::future::ResumeTy, &'r async_graphql::dataloader::DataLoader<adapters::graphql_queries::SuitabilityAnswerSuitabilityQuestionQuestionIdUuidLoader>, uuid::Uuid, &'s uuid::Uuid, core::iter::sources::once::Once<uuid::Uuid>, impl core::future::future::Future<Output = core::result::Result<std::collections::hash::map::HashMap<uuid::Uuid, <adapters::graphql_queries::SuitabilityAnswerSuitabilityQuestionQuestionIdUuidLoader as async_graphql::dataloader::Loader<uuid::Uuid>>::Value>, <adapters::graphql_queries::SuitabilityAnswerSuitabilityQuestionQuestionIdUuidLoader as async_graphql::dataloader::Loader<uuid::Uuid>>::Error>>, ()}: core::marker::Send`
#1 [codegen_fulfill_obligation] checking if `core::ops::unsize::CoerceUnsized` fulfills its obligations
#2 [collect_and_partition_mono_items] collect_and_partition_mono_items
#3 [exported_symbols] exported_symbols
end of query stack
Backtrace

stack backtrace:
   0:     0xffff7d87ded4 - std::backtrace_rs::backtrace::libunwind::trace::h93b3238ee24363ff
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0xffff7d87ded4 - std::backtrace_rs::backtrace::trace_unsynchronized::hd0b91c595765251c
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0xffff7d87ded4 - std::sys_common::backtrace::_print_fmt::h30044c15f37f55e5
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys_common/backtrace.rs:67:5
   3:     0xffff7d87ded4 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h3e879cfd83c3e738
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys_common/backtrace.rs:46:22
   4:     0xffff7d8d4e30 - core::fmt::write::h0d0a553933f27920
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/fmt/mod.rs:1149:17
   5:     0xffff7d86efe8 - std::io::Write::write_fmt::h6441aebd0d25cafa
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/io/mod.rs:1697:15
   6:     0xffff7d880b88 - std::sys_common::backtrace::_print::h59c3f7ca96dcfa56
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys_common/backtrace.rs:49:5
   7:     0xffff7d880b88 - std::sys_common::backtrace::print::he3a1a4c8e3f2b5c5
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys_common/backtrace.rs:36:9
   8:     0xffff7d880b88 - std::panicking::default_hook::{{closure}}::h0e439cefcb09f19c
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:211:50
   9:     0xffff7d880744 - std::panicking::default_hook::h0d25e18a244e112d
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:228:9
  10:     0xffff7e48b738 - rustc_driver[890932e65b1c519a]::DEFAULT_HOOK::{closure#0}::{closure#0}
  11:     0xffff310f1e7c - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::ha028e4f2893b14cf
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/alloc/src/boxed.rs:1708:9
  12:     0xffff310f2ebc - proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter::{{closure}}::{{closure}}::h25167e759e3e5643
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/proc_macro/src/bridge/client.rs:320:21
  13:     0xffff7d88138c - std::panicking::rust_panic_with_hook::he2d8fa5b78d61952
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:610:17
  14:     0xffff7d880e5c - std::panicking::begin_panic_handler::{{closure}}::h17be8acecdbc2a5f
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:500:13
  15:     0xffff7d87e38c - std::sys_common::backtrace::__rust_end_short_backtrace::h8cecb3628cc0cdc8
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys_common/backtrace.rs:139:18
  16:     0xffff7d880df0 - rust_begin_unwind
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:498:5
  17:     0xffff7d84c808 - core::panicking::panic_fmt::hffea458b8dc29080
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/panicking.rs:107:14
  18:     0xffff7d84c78c - core::panicking::panic::h976e19ce9e8078a5
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/panicking.rs:48:5
  19:     0xffff8292f358 - <rustc_middle[71ee4195a1895a6]::ty::context::TyCtxt>::def_path_hash_to_def_id
  20:     0xffff82a007ac - <rustc_query_system[97bb7d7acedca530]::dep_graph::dep_node::DepNode<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind> as rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepNodeExt>::extract_def_id
  21:     0xffff81d6a8b4 - rustc_query_impl[970b09f12593889e]::query_callbacks::type_of::force_from_dep_node
  22:     0xffff82918ec4 - <rustc_middle[71ee4195a1895a6]::ty::context::TyCtxt as rustc_query_system[97bb7d7acedca530]::dep_graph::DepContext>::try_force_from_dep_node
  23:     0xffff81db4910 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  24:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  25:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  26:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  27:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  28:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  29:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  30:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  31:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  32:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  33:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  34:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  35:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  36:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  37:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  38:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  39:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  40:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  41:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  42:     0xffff81db48e0 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  43:     0xffff81d830ec - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  44:     0xffff81b75cd0 - rustc_query_system[97bb7d7acedca530]::query::plumbing::try_load_from_disk_and_cache_in_memory::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt, rustc_middle[71ee4195a1895a6]::infer::canonical::Canonical<rustc_middle[71ee4195a1895a6]::ty::ParamEnvAnd<rustc_middle[71ee4195a1895a6]::ty::Predicate>>, core[6386174f90089796]::result::Result<rustc_middle[71ee4195a1895a6]::traits::select::EvaluationResult, rustc_middle[71ee4195a1895a6]::traits::select::OverflowError>>
  45:     0xffff81ba5d50 - rustc_query_system[97bb7d7acedca530]::query::plumbing::get_query::<rustc_query_impl[970b09f12593889e]::queries::evaluate_obligation, rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  46:     0xffff81caf404 - <rustc_query_impl[970b09f12593889e]::Queries as rustc_middle[71ee4195a1895a6]::ty::query::QueryEngine>::evaluate_obligation
  47:     0xffff82643b40 - <rustc_infer[83afd82b4c0b1e7f]::infer::InferCtxt as rustc_trait_selection[6dbd9f408411fdb6]::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation
  48:     0xffff82643c80 - <rustc_infer[83afd82b4c0b1e7f]::infer::InferCtxt as rustc_trait_selection[6dbd9f408411fdb6]::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation_no_overflow
  49:     0xffff826722c4 - <rustc_trait_selection[6dbd9f408411fdb6]::traits::fulfill::FulfillProcessor>::process_trait_obligation
  50:     0xffff8266b408 - <rustc_trait_selection[6dbd9f408411fdb6]::traits::fulfill::FulfillProcessor>::progress_changed_obligations
  51:     0xffff826d4d20 - <rustc_data_structures[b6f3ed531bba89d7]::obligation_forest::ObligationForest<rustc_trait_selection[6dbd9f408411fdb6]::traits::fulfill::PendingPredicateObligation>>::process_obligations::<rustc_trait_selection[6dbd9f408411fdb6]::traits::fulfill::FulfillProcessor, rustc_data_structures[b6f3ed531bba89d7]::obligation_forest::Outcome<rustc_trait_selection[6dbd9f408411fdb6]::traits::fulfill::PendingPredicateObligation, rustc_infer[83afd82b4c0b1e7f]::traits::FulfillmentErrorCode>>
  52:     0xffff8266a360 - <rustc_trait_selection[6dbd9f408411fdb6]::traits::fulfill::FulfillmentContext>::select
  53:     0xffff8266a820 - <rustc_trait_selection[6dbd9f408411fdb6]::traits::fulfill::FulfillmentContext as rustc_infer[83afd82b4c0b1e7f]::traits::engine::TraitEngine>::select_where_possible
  54:     0xffff8266a56c - <rustc_trait_selection[6dbd9f408411fdb6]::traits::fulfill::FulfillmentContext as rustc_infer[83afd82b4c0b1e7f]::traits::engine::TraitEngine>::select_all_or_error
  55:     0xffff827037f8 - rustc_trait_selection[6dbd9f408411fdb6]::traits::codegen::drain_fulfillment_cx_or_panic::<rustc_middle[71ee4195a1895a6]::traits::ImplSource<()>>
  56:     0xffff82617edc - <rustc_infer[83afd82b4c0b1e7f]::infer::InferCtxtBuilder>::enter::<core[6386174f90089796]::result::Result<rustc_middle[71ee4195a1895a6]::traits::ImplSource<()>, rustc_errors[30a485659b0a31e8]::ErrorReported>, rustc_trait_selection[6dbd9f408411fdb6]::traits::codegen::codegen_fulfill_obligation::{closure#0}>
  57:     0xffff82703788 - rustc_trait_selection[6dbd9f408411fdb6]::traits::codegen::codegen_fulfill_obligation
  58:     0xffff81de14e8 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[71ee4195a1895a6]::ty::context::TyCtxt, (rustc_middle[71ee4195a1895a6]::ty::ParamEnv, rustc_middle[71ee4195a1895a6]::ty::sty::Binder<rustc_middle[71ee4195a1895a6]::ty::sty::TraitRef>), core[6386174f90089796]::result::Result<rustc_middle[71ee4195a1895a6]::traits::ImplSource<()>, rustc_errors[30a485659b0a31e8]::ErrorReported>>
  59:     0xffff81c85898 - rustc_data_structures[b6f3ed531bba89d7]::stack::ensure_sufficient_stack::<(core[6386174f90089796]::result::Result<rustc_middle[71ee4195a1895a6]::traits::ImplSource<()>, rustc_errors[30a485659b0a31e8]::ErrorReported>, rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepNodeIndex), rustc_query_system[97bb7d7acedca530]::query::plumbing::execute_job<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt, (rustc_middle[71ee4195a1895a6]::ty::ParamEnv, rustc_middle[71ee4195a1895a6]::ty::sty::Binder<rustc_middle[71ee4195a1895a6]::ty::sty::TraitRef>), core[6386174f90089796]::result::Result<rustc_middle[71ee4195a1895a6]::traits::ImplSource<()>, rustc_errors[30a485659b0a31e8]::ErrorReported>>::{closure#3}>
  60:     0xffff81bbd518 - rustc_query_system[97bb7d7acedca530]::query::plumbing::get_query::<rustc_query_impl[970b09f12593889e]::queries::codegen_fulfill_obligation, rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
  61:     0xffff81caec54 - <rustc_query_impl[970b09f12593889e]::Queries as rustc_middle[71ee4195a1895a6]::ty::query::QueryEngine>::codegen_fulfill_obligation
  62:     0xffff80d5221c - rustc_monomorphize[a7b190e3b8fd0f39]::custom_coerce_unsize_info
  63:     0xffff80d675c0 - <rustc_monomorphize[a7b190e3b8fd0f39]::collector::MirNeighborCollector as rustc_middle[71ee4195a1895a6]::mir::visit::Visitor>::visit_rvalue
  64:     0xffff80d6a7a8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_neighbours
  65:     0xffff80d65900 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  66:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  67:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  68:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  69:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  70:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  71:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  72:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  73:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  74:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  75:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  76:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  77:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  78:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  79:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  80:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  81:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  82:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  83:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  84:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  85:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  86:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  87:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  88:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  89:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  90:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  91:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  92:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  93:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  94:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  95:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  96:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  97:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  98:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
  99:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 100:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 101:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 102:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 103:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 104:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 105:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 106:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 107:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 108:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 109:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 110:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 111:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 112:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 113:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 114:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 115:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 116:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 117:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 118:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 119:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 120:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 121:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 122:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 123:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 124:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 125:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 126:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 127:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 128:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 129:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 130:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 131:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 132:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 133:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 134:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 135:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 136:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 137:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 138:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 139:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 140:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 141:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 142:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 143:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 144:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 145:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 146:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 147:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 148:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 149:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 150:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 151:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 152:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 153:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 154:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 155:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 156:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 157:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 158:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 159:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 160:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 161:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 162:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 163:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 164:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 165:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 166:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 167:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 168:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 169:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 170:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 171:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 172:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 173:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 174:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 175:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 176:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 177:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 178:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 179:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 180:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 181:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 182:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 183:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 184:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 185:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 186:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 187:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 188:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 189:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 190:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 191:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 192:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 193:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 194:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 195:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 196:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 197:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 198:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 199:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 200:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 201:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 202:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 203:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 204:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 205:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 206:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 207:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 208:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 209:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 210:     0xffff80d65ad8 - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_items_rec
 211:     0xffff80d4d4d4 - <rustc_session[c622b9604f4a47a1]::session::Session>::time::<(), rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_crate_mono_items::{closure#1}>
 212:     0xffff80d646fc - rustc_monomorphize[a7b190e3b8fd0f39]::collector::collect_crate_mono_items
 213:     0xffff80d62240 - rustc_monomorphize[a7b190e3b8fd0f39]::partitioning::collect_and_partition_mono_items
 214:     0xffff81defc18 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[71ee4195a1895a6]::ty::context::TyCtxt, (), (&std[b1afcd615c2059b7]::collections::hash::set::HashSet<rustc_span[7d79f7a404643ea]::def_id::DefId, core[6386174f90089796]::hash::BuildHasherDefault<rustc_hash[ad37f17d1c62eeb1]::FxHasher>>, &[rustc_middle[71ee4195a1895a6]::mir::mono::CodegenUnit])>
 215:     0xffff81c94514 - rustc_data_structures[b6f3ed531bba89d7]::stack::ensure_sufficient_stack::<((&std[b1afcd615c2059b7]::collections::hash::set::HashSet<rustc_span[7d79f7a404643ea]::def_id::DefId, core[6386174f90089796]::hash::BuildHasherDefault<rustc_hash[ad37f17d1c62eeb1]::FxHasher>>, &[rustc_middle[71ee4195a1895a6]::mir::mono::CodegenUnit]), rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepNodeIndex), rustc_query_system[97bb7d7acedca530]::query::plumbing::execute_job<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt, (), (&std[b1afcd615c2059b7]::collections::hash::set::HashSet<rustc_span[7d79f7a404643ea]::def_id::DefId, core[6386174f90089796]::hash::BuildHasherDefault<rustc_hash[ad37f17d1c62eeb1]::FxHasher>>, &[rustc_middle[71ee4195a1895a6]::mir::mono::CodegenUnit])>::{closure#3}>
 216:     0xffff81b5da4c - rustc_query_system[97bb7d7acedca530]::query::plumbing::try_execute_query::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt, rustc_query_system[97bb7d7acedca530]::query::caches::DefaultCache<(), (&std[b1afcd615c2059b7]::collections::hash::set::HashSet<rustc_span[7d79f7a404643ea]::def_id::DefId, core[6386174f90089796]::hash::BuildHasherDefault<rustc_hash[ad37f17d1c62eeb1]::FxHasher>>, &[rustc_middle[71ee4195a1895a6]::mir::mono::CodegenUnit])>>
 217:     0xffff81afc804 - rustc_query_system[97bb7d7acedca530]::query::plumbing::force_query::<rustc_query_impl[970b09f12593889e]::queries::collect_and_partition_mono_items, rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
 218:     0xffff81d77124 - rustc_query_impl[970b09f12593889e]::query_callbacks::collect_and_partition_mono_items::force_from_dep_node
 219:     0xffff82918ec4 - <rustc_middle[71ee4195a1895a6]::ty::context::TyCtxt as rustc_query_system[97bb7d7acedca530]::dep_graph::DepContext>::try_force_from_dep_node
 220:     0xffff81db4910 - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
 221:     0xffff81d830ec - <rustc_query_system[97bb7d7acedca530]::dep_graph::graph::DepGraph<rustc_middle[71ee4195a1895a6]::dep_graph::dep_node::DepKind>>::try_mark_green::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
 222:     0xffff81b84c44 - rustc_query_system[97bb7d7acedca530]::query::plumbing::try_load_from_disk_and_cache_in_memory::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt, rustc_span[7d79f7a404643ea]::def_id::CrateNum, &[(rustc_middle[71ee4195a1895a6]::middle::exported_symbols::ExportedSymbol, rustc_middle[71ee4195a1895a6]::middle::exported_symbols::SymbolExportLevel)]>
 223:     0xffff81b51284 - rustc_query_system[97bb7d7acedca530]::query::plumbing::try_execute_query::<rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt, rustc_query_system[97bb7d7acedca530]::query::caches::DefaultCache<rustc_span[7d79f7a404643ea]::def_id::CrateNum, &[(rustc_middle[71ee4195a1895a6]::middle::exported_symbols::ExportedSymbol, rustc_middle[71ee4195a1895a6]::middle::exported_symbols::SymbolExportLevel)]>>
 224:     0xffff81b9d728 - rustc_query_system[97bb7d7acedca530]::query::plumbing::get_query::<rustc_query_impl[970b09f12593889e]::queries::exported_symbols, rustc_query_impl[970b09f12593889e]::plumbing::QueryCtxt>
 225:     0xffff82153c0c - <rustc_metadata[72613a923d6bd920]::rmeta::encoder::EncodeContext>::encode_crate_root
 226:     0xffff821605a8 - rustc_metadata[72613a923d6bd920]::rmeta::encoder::encode_metadata_impl
 227:     0xffff821e6648 - rustc_data_structures[b6f3ed531bba89d7]::sync::join::<rustc_metadata[72613a923d6bd920]::rmeta::encoder::encode_metadata::{closure#0}, rustc_metadata[72613a923d6bd920]::rmeta::encoder::encode_metadata::{closure#1}, rustc_metadata[72613a923d6bd920]::rmeta::encoder::EncodedMetadata, ()>
 228:     0xffff8215fec8 - rustc_metadata[72613a923d6bd920]::rmeta::encoder::encode_metadata
 229:     0xffff7e5c0bac - <rustc_interface[8c36daa1df4fa2ae]::queries::Queries>::ongoing_codegen
 230:     0xffff7e4a7984 - <rustc_interface[8c36daa1df4fa2ae]::interface::Compiler>::enter::<rustc_driver[890932e65b1c519a]::run_compiler::{closure#1}::{closure#2}, core[6386174f90089796]::result::Result<core[6386174f90089796]::option::Option<rustc_interface[8c36daa1df4fa2ae]::queries::Linker>, rustc_errors[30a485659b0a31e8]::ErrorReported>>
 231:     0xffff7e495534 - rustc_span[7d79f7a404643ea]::with_source_map::<core[6386174f90089796]::result::Result<(), rustc_errors[30a485659b0a31e8]::ErrorReported>, rustc_interface[8c36daa1df4fa2ae]::interface::create_compiler_and_run<core[6386174f90089796]::result::Result<(), rustc_errors[30a485659b0a31e8]::ErrorReported>, rustc_driver[890932e65b1c519a]::run_compiler::{closure#1}>::{closure#1}>
 232:     0xffff7e4a880c - <scoped_tls[51779844e3f85be9]::ScopedKey<rustc_span[7d79f7a404643ea]::SessionGlobals>>::set::<rustc_interface[8c36daa1df4fa2ae]::util::setup_callbacks_and_run_in_thread_pool_with_globals<rustc_interface[8c36daa1df4fa2ae]::interface::run_compiler<core[6386174f90089796]::result::Result<(), rustc_errors[30a485659b0a31e8]::ErrorReported>, rustc_driver[890932e65b1c519a]::run_compiler::{closure#1}>::{closure#0}, core[6386174f90089796]::result::Result<(), rustc_errors[30a485659b0a31e8]::ErrorReported>>::{closure#0}::{closure#0}, core[6386174f90089796]::result::Result<(), rustc_errors[30a485659b0a31e8]::ErrorReported>>
 233:     0xffff7e4a3fbc - std[b1afcd615c2059b7]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[8c36daa1df4fa2ae]::util::setup_callbacks_and_run_in_thread_pool_with_globals<rustc_interface[8c36daa1df4fa2ae]::interface::run_compiler<core[6386174f90089796]::result::Result<(), rustc_errors[30a485659b0a31e8]::ErrorReported>, rustc_driver[890932e65b1c519a]::run_compiler::{closure#1}>::{closure#0}, core[6386174f90089796]::result::Result<(), rustc_errors[30a485659b0a31e8]::ErrorReported>>::{closure#0}, core[6386174f90089796]::result::Result<(), rustc_errors[30a485659b0a31e8]::ErrorReported>>
 234:     0xffff7e4fd1b8 - <<std[b1afcd615c2059b7]::thread::Builder>::spawn_unchecked<rustc_interface[8c36daa1df4fa2ae]::util::setup_callbacks_and_run_in_thread_pool_with_globals<rustc_interface[8c36daa1df4fa2ae]::interface::run_compiler<core[6386174f90089796]::result::Result<(), rustc_errors[30a485659b0a31e8]::ErrorReported>, rustc_driver[890932e65b1c519a]::run_compiler::{closure#1}>::{closure#0}, core[6386174f90089796]::result::Result<(), rustc_errors[30a485659b0a31e8]::ErrorReported>>::{closure#0}, core[6386174f90089796]::result::Result<(), rustc_errors[30a485659b0a31e8]::ErrorReported>>::{closure#1} as core[6386174f90089796]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
 235:     0xffff7d88b8fc - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::had3362d7c7063258
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/alloc/src/boxed.rs:1694:9
 236:     0xffff7d88b8fc - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h48cd5ee8bcf6ba5b
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/alloc/src/boxed.rs:1694:9
 237:     0xffff7d88b8fc - std::sys::unix::thread::Thread::new::thread_start::hf7c96020d8134f70
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys/unix/thread.rs:106:17
 238:     0xffff7d625628 - start_thread
 239:     0xffff7d74801c - <unknown>
 240:                0x0 - <unknown>

@cadillion cadillion added C-bug Category: This is a bug. 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. labels May 12, 2022
@workingjubilee
Copy link
Member

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-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.
Projects
None yet
Development

No branches or pull requests

2 participants