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

nightly docs: called Result::unwrap_err() on an Ok value #118670

Closed
emhane opened this issue Dec 6, 2023 · 2 comments · Fixed by #118710
Closed

nightly docs: called Result::unwrap_err() on an Ok value #118670

emhane opened this issue Dec 6, 2023 · 2 comments · Fixed by #118710
Assignees
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

@emhane
Copy link

emhane commented Dec 6, 2023

Code

fn recover_sender(
    entry: Result<(RawKey<TxNumber>, RawValue<TransactionSignedNoHash>), DatabaseError>,
    rlp_buf: &mut Vec<u8>,
) -> Result<(u64, Address), Box<SenderRecoveryStageError>> {
    let (tx_id, transaction) =
        entry.map_err(|e| Box::new(SenderRecoveryStageError::StageError(e.into())))?;
    let tx_id = tx_id.key().expect("key to be formated");

    let tx = transaction.value().expect("value to be formated");
    tx.transaction.encode_without_signature(rlp_buf);

    // We call [Signature::recover_signer_unchecked] because transactions run in the pipeline are
    // known to be valid - this means that we do not need to check whether or not the `s` value is
    // greater than `secp256k1n / 2` if past EIP-2. There are transactions pre-homestead which have
    // large `s` values, so using [Signature::recover_signer] here would not be
    // backwards-compatible.
    let sender = tx
        .signature
        .recover_signer_unchecked(keccak256(rlp_buf))
        .ok_or(SenderRecoveryStageError::FailedRecovery(FailedSenderRecoveryError { tx: tx_id }))?;

    Ok((tx_id, sender))
}

https://github.com/paradigmxyz/reth/blob/227e1b7ad513977f4f48b18041df02686fca5f94/crates/stages/src/stages/sender_recovery.rs#L190-L212

fn ensure_valid(
        &self,
        transaction: ValidPoolTransaction<T>,
    ) -> Result<ValidPoolTransaction<T>, InsertErr<T>> {
        if !transaction.origin.is_local() || self.local_transactions_config.no_local_exemptions() {
            let current_txs =
                self.tx_counter.get(&transaction.sender_id()).copied().unwrap_or_default();
            if current_txs >= self.max_account_slots {
                return Err(InsertErr::ExceededSenderTransactionsCapacity {
                    transaction: Arc::new(transaction),
                })
            }
        }
        if transaction.gas_limit() > self.block_gas_limit {
            return Err(InsertErr::TxGasLimitMoreThanAvailableBlockGas {
                block_gas_limit: self.block_gas_limit,
                tx_gas_limit: transaction.gas_limit(),
                transaction: Arc::new(transaction),
            })
        }

        if self.contains_conflicting_transaction(&transaction) {
            // blob vs non blob transactions are mutually exclusive for the same sender
            return Err(InsertErr::TxTypeConflict { transaction: Arc::new(transaction) })
        }

        Ok(transaction)
    }

fn ensure_valid_blob_transaction(
        &self,
        new_blob_tx: ValidPoolTransaction<T>,
        on_chain_balance: U256,
        ancestor: Option<TransactionId>,
    ) -> Result<ValidPoolTransaction<T>, InsertErr<T>> {
        if let Some(ancestor) = ancestor {
            let Some(ancestor_tx) = self.txs.get(&ancestor) else {
                // ancestor tx is missing, so we can't insert the new blob
                return Err(InsertErr::BlobTxHasNonceGap { transaction: Arc::new(new_blob_tx) })
            };
            if ancestor_tx.state.has_nonce_gap() {
                // the ancestor transaction already has a nonce gap, so we can't insert the new
                // blob
                return Err(InsertErr::BlobTxHasNonceGap { transaction: Arc::new(new_blob_tx) })
            }

            // the max cost executing this transaction requires
            let mut cumulative_cost = ancestor_tx.next_cumulative_cost() + new_blob_tx.cost();

            // check if the new blob would go into overdraft
            if cumulative_cost > on_chain_balance {
                // the transaction would go into overdraft
                return Err(InsertErr::Overdraft { transaction: Arc::new(new_blob_tx) })
            }

            // ensure that a replacement would not shift already propagated blob transactions into
            // overdraft
            let id = new_blob_tx.transaction_id;
            let mut descendants = self.descendant_txs_inclusive(&id).peekable();
            if let Some((maybe_replacement, _)) = descendants.peek() {
                if **maybe_replacement == new_blob_tx.transaction_id {
                    // replacement transaction
                    descendants.next();

                    // check if any of descendant blob transactions should be shifted into overdraft
                    for (_, tx) in descendants {
                        cumulative_cost += tx.transaction.cost();
                        if tx.transaction.is_eip4844() && cumulative_cost > on_chain_balance {
                            // the transaction would shift
                            return Err(InsertErr::Overdraft { transaction: Arc::new(new_blob_tx) })
                        }
                    }
                }
            }
        } else if new_blob_tx.cost() > on_chain_balance {
            // the transaction would go into overdraft
            return Err(InsertErr::Overdraft { transaction: Arc::new(new_blob_tx) })
        }

        Ok(new_blob_tx)
    }

https://github.com/paradigmxyz/reth/blob/227e1b7ad513977f4f48b18041df02686fca5f94/crates/transaction-pool/src/pool/txpool.rs#L1263-L1356

Meta

rustc +nightly --version --verbose:

rustc 1.76.0-nightly (e9013ac0e 2023-12-05)
binary: rustc
commit-hash: e9013ac0e402ef449c5d00251d687289599137df
commit-date: 2023-12-05
host: aarch64-apple-darwin
release: 1.76.0-nightly
LLVM version: 17.0.5

Error output

rustc-ice-2023-12-06T10_34_23-89319.txt
rustc-ice-2023-12-06T10_34_24-89318.txt

Backtrace

thread 'rustc' panicked at compiler/rustc_infer/src/infer/generalize.rs:28:40:
called `Result::unwrap_err()` on an `Ok` value: std::result::Result<(?5t, ?6t), reth_interfaces::db::DatabaseError>
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
   3: rustc_infer::infer::generalize::generalize::<rustc_infer::infer::generalize::CombineDelegate, rustc_middle::ty::Ty, rustc_type_ir::ty_kind::TyVid>
   4: <rustc_infer::infer::combine::CombineFields>::instantiate
   5: <rustc_infer::infer::equate::Equate as rustc_middle::ty::relate::TypeRelation>::tys
   6: <rustc_middle::ty::generic_args::GenericArg as rustc_middle::ty::relate::Relate>::relate::<rustc_infer::infer::equate::Equate>
   7: <core::result::Result<rustc_middle::ty::generic_args::GenericArg, rustc_middle::ty::error::TypeError> as rustc_type_ir::interner::CollectAndApply<rustc_middle::ty::generic_args::GenericArg, &rustc_middle::ty::list::List<rustc_middle::ty::generic_args::GenericArg>>>::collect_and_apply::<core::iter::adapters::map::Map<core::iter::adapters::zip::Zip<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::generic_args::GenericArg>>, core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::generic_args::GenericArg>>>, rustc_middle::ty::relate::relate_args_invariantly<rustc_infer::infer::sub::Sub>::{closure#0}>, <rustc_middle::ty::context::TyCtxt>::mk_args_from_iter<core::iter::adapters::map::Map<core::iter::adapters::zip::Zip<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::generic_args::GenericArg>>, core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::generic_args::GenericArg>>>, rustc_middle::ty::relate::relate_args_invariantly<rustc_infer::infer::sub::Sub>::{closure#0}>, core::result::Result<rustc_middle::ty::generic_args::GenericArg, rustc_middle::ty::error::TypeError>>::{closure#0}>
   8: <rustc_infer::infer::combine::CombineFields>::higher_ranked_sub::<rustc_middle::ty::sty::TraitRef>
   9: <rustc_infer::infer::InferCtxt>::commit_if_ok::<rustc_infer::infer::InferOk<()>, rustc_middle::ty::error::TypeError, <rustc_infer::infer::at::Trace>::sub<rustc_middle::ty::sty::Binder<rustc_middle::ty::sty::TraitRef>>::{closure#0}>
  10: <rustc_trait_selection::traits::select::SelectionContext>::match_where_clause_trait_ref
  11: <rustc_infer::infer::InferCtxt>::probe::<core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, <rustc_trait_selection::traits::select::SelectionContext>::evaluation_probe<<rustc_trait_selection::traits::select::SelectionContext>::where_clause_may_apply::{closure#0}>::{closure#0}>
  12: <rustc_trait_selection::traits::select::SelectionContext>::assemble_candidates_from_caller_bounds
  13: <rustc_trait_selection::traits::select::SelectionContext>::assemble_candidates
  14: <rustc_trait_selection::traits::select::SelectionContext>::in_task::<<rustc_trait_selection::traits::select::SelectionContext>::candidate_from_obligation::{closure#0}::{closure#0}, core::result::Result<core::option::Option<rustc_middle::traits::select::SelectionCandidate>, rustc_middle::traits::SelectionError>>::{closure#0}
  15: <rustc_trait_selection::traits::select::SelectionContext>::candidate_from_obligation
  16: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_trait_predicate_recursively::{closure#0}::{closure#1}
  17: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_trait_predicate_recursively
  18: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_predicate_recursively
  19: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_predicates_recursively::<alloc::vec::Vec<rustc_infer::traits::Obligation<rustc_middle::ty::Predicate>>>
  20: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_predicate_recursively
  21: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_predicates_recursively::<alloc::vec::Vec<rustc_infer::traits::Obligation<rustc_middle::ty::Predicate>>>
  22: <rustc_infer::infer::InferCtxt>::probe::<core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, <rustc_trait_selection::traits::select::SelectionContext>::evaluation_probe<<rustc_trait_selection::traits::select::SelectionContext>::where_clause_may_apply::{closure#0}>::{closure#0}>
  23: <rustc_trait_selection::traits::select::SelectionContext>::assemble_candidates_from_caller_bounds
  24: <rustc_trait_selection::traits::select::SelectionContext>::assemble_candidates
  25: <rustc_trait_selection::traits::select::SelectionContext>::in_task::<<rustc_trait_selection::traits::select::SelectionContext>::candidate_from_obligation::{closure#0}::{closure#0}, core::result::Result<core::option::Option<rustc_middle::traits::select::SelectionCandidate>, rustc_middle::traits::SelectionError>>::{closure#0}
  26: <rustc_trait_selection::traits::select::SelectionContext>::candidate_from_obligation
  27: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_trait_predicate_recursively::{closure#0}::{closure#1}
  28: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_trait_predicate_recursively
  29: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_predicate_recursively
  30: <rustc_infer::infer::InferCtxt>::probe::<core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, <rustc_trait_selection::traits::select::SelectionContext>::evaluation_probe<<rustc_trait_selection::traits::select::SelectionContext>::evaluate_root_obligation::{closure#0}>::{closure#0}>
  31: rustc_traits::evaluate_obligation::evaluate_obligation
      [... omitted 2 frames ...]
  32: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation
  33: <rustdoc::clean::blanket_impl::BlanketImplFinder>::get_blanket_impls
  34: rustdoc::clean::utils::get_auto_trait_and_blanket_impls
  35: <rustdoc::passes::collect_trait_impls::SyntheticImplCollector as rustdoc::visit::DocVisitor>::visit_item
  36: <rustdoc::passes::collect_trait_impls::SyntheticImplCollector as rustdoc::visit::DocVisitor>::visit_item
  37: <rustdoc::passes::collect_trait_impls::SyntheticImplCollector as rustdoc::visit::DocVisitor>::visit_item
  38: <rustdoc::passes::collect_trait_impls::SyntheticImplCollector as rustdoc::visit::DocVisitor>::visit_item
  39: rustdoc::passes::collect_trait_impls::collect_trait_impls
  40: rustdoc::main_args::{closure#1}::{closure#0}::{closure#0}
  41: <rustc_interface::interface::Compiler>::enter::<rustdoc::main_args::{closure#1}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
  42: rustc_interface::interface::run_compiler::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustdoc::main_args::{closure#1}>::{closure#0}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: 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-rustdoc&template=ice.md

note: please attach the file at `/Users/emhane/repos/reth/rustc-ice-2023-12-06T10_36_03-89407.txt` to your bug report

note: compiler flags: --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 `<abstraction::cursor::Walker<'a, ^1_1, ^1_0> as core::iter::traits::iterator::Iterator>::Item: core::marker::Send`
end of query stack
error: could not document `reth-db`

Caused by:
  process didn't exit successfully: `/Users/emhane/.rustup/toolchains/nightly-aarch64-apple-darwin/bin/rustdoc --edition=2021 --crate-type lib --crate-name reth_db crates/storage/db/src/lib.rs -o /Users/emhane/repos/reth/target/doc --cfg 'feature="arbitrary"' --cfg 'feature="bench"' --cfg 'feature="bench-postcard"' --cfg 'feature="default"' --cfg 'feature="mdbx"' --cfg 'feature="reth-libmdbx"' --cfg 'feature="secp256k1"' --cfg 'feature="tempfile"' --cfg 'feature="test-utils"' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=191 -C metadata=f110fe3b42e41cc1 -L dependency=/Users/emhane/repos/reth/target/debug/deps --extern arbitrary=/Users/emhane/repos/reth/target/debug/deps/libarbitrary-f817125367cc0c83.rmeta --extern bytes=/Users/emhane/repos/reth/target/debug/deps/libbytes-06062c9cd78e7609.rmeta --extern derive_more=/Users/emhane/repos/reth/target/debug/deps/libderive_more-947da8fe5dfa6457.dylib --extern eyre=/Users/emhane/repos/reth/target/debug/deps/libeyre-66b3e74be2702d9e.rmeta --extern futures=/Users/emhane/repos/reth/target/debug/deps/libfutures-6b923964201e622b.rmeta --extern heapless=/Users/emhane/repos/reth/target/debug/deps/libheapless-ea152ff3cb74de1a.rmeta --extern itertools=/Users/emhane/repos/reth/target/debug/deps/libitertools-0cf44d9f3f5f4d72.rmeta --extern metrics=/Users/emhane/repos/reth/target/debug/deps/libmetrics-32803db1d963f052.rmeta --extern modular_bitfield=/Users/emhane/repos/reth/target/debug/deps/libmodular_bitfield-931114a41c2a3262.rmeta --extern page_size=/Users/emhane/repos/reth/target/debug/deps/libpage_size-345a4ff69331fd97.rmeta --extern parity_scale_codec=/Users/emhane/repos/reth/target/debug/deps/libparity_scale_codec-1253cce539249c67.rmeta --extern parking_lot=/Users/emhane/repos/reth/target/debug/deps/libparking_lot-f0a09f30068a4c0f.rmeta --extern paste=/Users/emhane/repos/reth/target/debug/deps/libpaste-9858b378b3e08000.dylib --extern postcard=/Users/emhane/repos/reth/target/debug/deps/libpostcard-1e31a20e9eb2f7e6.rmeta --extern proptest=/Users/emhane/repos/reth/target/debug/deps/libproptest-3b059204f68d8a8d.rmeta --extern proptest_derive=/Users/emhane/repos/reth/target/debug/deps/libproptest_derive-fa8b1ee4217b03b2.dylib --extern rand=/Users/emhane/repos/reth/target/debug/deps/librand-68716a3fe964b41e.rmeta --extern rayon=/Users/emhane/repos/reth/target/debug/deps/librayon-cfdf2ae36ea7330e.rmeta --extern reth_codecs=/Users/emhane/repos/reth/target/debug/deps/libreth_codecs-dfe20b6a67dee70b.rmeta --extern reth_interfaces=/Users/emhane/repos/reth/target/debug/deps/libreth_interfaces-cdb14a4f720a4f59.rmeta --extern reth_libmdbx=/Users/emhane/repos/reth/target/debug/deps/libreth_libmdbx-fd60cb641cf583c3.rmeta --extern reth_metrics=/Users/emhane/repos/reth/target/debug/deps/libreth_metrics-a73ccd1fc6b81f59.rmeta --extern reth_nippy_jar=/Users/emhane/repos/reth/target/debug/deps/libreth_nippy_jar-ec2313a60ea7c8ae.rmeta --extern reth_primitives=/Users/emhane/repos/reth/target/debug/deps/libreth_primitives-17069f5281ef2523.rmeta --extern reth_tracing=/Users/emhane/repos/reth/target/debug/deps/libreth_tracing-9e7cf26fa0be553e.rmeta --extern secp256k1=/Users/emhane/repos/reth/target/debug/deps/libsecp256k1-6a201b95e403ad01.rmeta --extern serde=/Users/emhane/repos/reth/target/debug/deps/libserde-c00c8eab970e0ab0.rmeta --extern tempfile=/Users/emhane/repos/reth/target/debug/deps/libtempfile-f26ed4957943fe1f.rmeta --extern thiserror=/Users/emhane/repos/reth/target/debug/deps/libthiserror-e836f10d20e161a8.rmeta --extern tokio_stream=/Users/emhane/repos/reth/target/debug/deps/libtokio_stream-bcc2125c52e1cc80.rmeta --crate-version 0.1.0-alpha.13` (exit status: 101)
warning: build failed, waiting for other jobs to finish...
thread 'rustc' panicked at compiler/rustc_infer/src/infer/generalize.rs:28:40:
called `Result::unwrap_err()` on an `Ok` value: std::sync::Arc<validate::ValidPoolTransaction<?3t>, std::alloc::Global>
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
   3: rustc_infer::infer::generalize::generalize::<rustc_infer::infer::generalize::CombineDelegate, rustc_middle::ty::Ty, rustc_type_ir::ty_kind::TyVid>
   4: <rustc_infer::infer::combine::CombineFields>::instantiate
   5: <rustc_infer::infer::equate::Equate as rustc_middle::ty::relate::TypeRelation>::tys
   6: <rustc_middle::ty::generic_args::GenericArg as rustc_middle::ty::relate::Relate>::relate::<rustc_infer::infer::equate::Equate>
   7: <core::result::Result<rustc_middle::ty::generic_args::GenericArg, rustc_middle::ty::error::TypeError> as rustc_type_ir::interner::CollectAndApply<rustc_middle::ty::generic_args::GenericArg, &rustc_middle::ty::list::List<rustc_middle::ty::generic_args::GenericArg>>>::collect_and_apply::<core::iter::adapters::map::Map<core::iter::adapters::zip::Zip<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::generic_args::GenericArg>>, core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::generic_args::GenericArg>>>, rustc_middle::ty::relate::relate_args_invariantly<rustc_infer::infer::sub::Sub>::{closure#0}>, <rustc_middle::ty::context::TyCtxt>::mk_args_from_iter<core::iter::adapters::map::Map<core::iter::adapters::zip::Zip<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::generic_args::GenericArg>>, core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::generic_args::GenericArg>>>, rustc_middle::ty::relate::relate_args_invariantly<rustc_infer::infer::sub::Sub>::{closure#0}>, core::result::Result<rustc_middle::ty::generic_args::GenericArg, rustc_middle::ty::error::TypeError>>::{closure#0}>
   8: <rustc_infer::infer::combine::CombineFields>::higher_ranked_sub::<rustc_middle::ty::sty::TraitRef>
   9: <rustc_infer::infer::InferCtxt>::commit_if_ok::<rustc_infer::infer::InferOk<()>, rustc_middle::ty::error::TypeError, <rustc_infer::infer::at::Trace>::sub<rustc_middle::ty::sty::Binder<rustc_middle::ty::sty::TraitRef>>::{closure#0}>
  10: <rustc_trait_selection::traits::select::SelectionContext>::match_where_clause_trait_ref
  11: <rustc_infer::infer::InferCtxt>::probe::<core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, <rustc_trait_selection::traits::select::SelectionContext>::evaluation_probe<<rustc_trait_selection::traits::select::SelectionContext>::where_clause_may_apply::{closure#0}>::{closure#0}>
  12: <rustc_trait_selection::traits::select::SelectionContext>::assemble_candidates_from_caller_bounds
  13: <rustc_trait_selection::traits::select::SelectionContext>::assemble_candidates
  14: <rustc_trait_selection::traits::select::SelectionContext>::in_task::<<rustc_trait_selection::traits::select::SelectionContext>::candidate_from_obligation::{closure#0}::{closure#0}, core::result::Result<core::option::Option<rustc_middle::traits::select::SelectionCandidate>, rustc_middle::traits::SelectionError>>::{closure#0}
  15: <rustc_trait_selection::traits::select::SelectionContext>::candidate_from_obligation
  16: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_trait_predicate_recursively::{closure#0}::{closure#1}
  17: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_trait_predicate_recursively
  18: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_predicate_recursively
  19: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_predicates_recursively::<alloc::vec::Vec<rustc_infer::traits::Obligation<rustc_middle::ty::Predicate>>>
  20: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_predicate_recursively
  21: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_predicates_recursively::<alloc::vec::Vec<rustc_infer::traits::Obligation<rustc_middle::ty::Predicate>>>
  22: <rustc_infer::infer::InferCtxt>::probe::<core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, <rustc_trait_selection::traits::select::SelectionContext>::evaluation_probe<<rustc_trait_selection::traits::select::SelectionContext>::where_clause_may_apply::{closure#0}>::{closure#0}>
  23: <rustc_trait_selection::traits::select::SelectionContext>::assemble_candidates_from_caller_bounds
  24: <rustc_trait_selection::traits::select::SelectionContext>::assemble_candidates
  25: <rustc_trait_selection::traits::select::SelectionContext>::in_task::<<rustc_trait_selection::traits::select::SelectionContext>::candidate_from_obligation::{closure#0}::{closure#0}, core::result::Result<core::option::Option<rustc_middle::traits::select::SelectionCandidate>, rustc_middle::traits::SelectionError>>::{closure#0}
  26: <rustc_trait_selection::traits::select::SelectionContext>::candidate_from_obligation
  27: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_trait_predicate_recursively::{closure#0}::{closure#1}
  28: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_trait_predicate_recursively
  29: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_predicate_recursively
  30: <rustc_infer::infer::InferCtxt>::probe::<core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, <rustc_trait_selection::traits::select::SelectionContext>::evaluation_probe<<rustc_trait_selection::traits::select::SelectionContext>::evaluate_root_obligation::{closure#0}>::{closure#0}>
  31: rustc_traits::evaluate_obligation::evaluate_obligation
      [... omitted 2 frames ...]
  32: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation
  33: <rustdoc::clean::blanket_impl::BlanketImplFinder>::get_blanket_impls
  34: rustdoc::clean::utils::get_auto_trait_and_blanket_impls
  35: <rustdoc::passes::collect_trait_impls::SyntheticImplCollector as rustdoc::visit::DocVisitor>::visit_item
  36: <rustdoc::passes::collect_trait_impls::SyntheticImplCollector as rustdoc::visit::DocVisitor>::visit_item
  37: <rustdoc::passes::collect_trait_impls::SyntheticImplCollector as rustdoc::visit::DocVisitor>::visit_item
  38: <rustdoc::passes::collect_trait_impls::SyntheticImplCollector as rustdoc::visit::DocVisitor>::visit_item
  39: rustdoc::passes::collect_trait_impls::collect_trait_impls
  40: rustdoc::main_args::{closure#1}::{closure#0}::{closure#0}
  41: <rustc_interface::interface::Compiler>::enter::<rustdoc::main_args::{closure#1}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
  42: rustc_interface::interface::run_compiler::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustdoc::main_args::{closure#1}>::{closure#0}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: 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-rustdoc&template=ice.md

note: please attach the file at `/Users/emhane/repos/reth/rustc-ice-2023-12-06T10_36_04-89406.txt` to your bug report

note: compiler flags: --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 `<pool::best::BestTransactionsWithBasefee<^1_0> as core::iter::traits::iterator::Iterator>::Item: core::marker::Send`
end of query stack
error: could not document `reth-transaction-pool`

Caused by:
  process didn't exit successfully: `/Users/emhane/.rustup/toolchains/nightly-aarch64-apple-darwin/bin/rustdoc --edition=2021 --crate-type lib --crate-name reth_transaction_pool crates/transaction-pool/src/lib.rs -o /Users/emhane/repos/reth/target/doc --cfg 'feature="arbitrary"' --cfg 'feature="default"' --cfg 'feature="optimism"' --cfg 'feature="paste"' --cfg 'feature="proptest"' --cfg 'feature="rand"' --cfg 'feature="serde"' --cfg 'feature="test-utils"' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=191 -C metadata=18fd06c0e3265f40 -L dependency=/Users/emhane/repos/reth/target/debug/deps --extern alloy_rlp=/Users/emhane/repos/reth/target/debug/deps/liballoy_rlp-95b946aef32beeb3.rmeta --extern aquamarine=/Users/emhane/repos/reth/target/debug/deps/libaquamarine-732c20d29152a751.dylib --extern async_trait=/Users/emhane/repos/reth/target/debug/deps/libasync_trait-f8d4c387d72c4121.dylib --extern auto_impl=/Users/emhane/repos/reth/target/debug/deps/libauto_impl-b38864be03c0009c.dylib --extern bitflags=/Users/emhane/repos/reth/target/debug/deps/libbitflags-72609df89335860d.rmeta --extern fnv=/Users/emhane/repos/reth/target/debug/deps/libfnv-8327b2da6b05d7a5.rmeta --extern futures_util=/Users/emhane/repos/reth/target/debug/deps/libfutures_util-429b548a59267c89.rmeta --extern metrics=/Users/emhane/repos/reth/target/debug/deps/libmetrics-32803db1d963f052.rmeta --extern parking_lot=/Users/emhane/repos/reth/target/debug/deps/libparking_lot-f0a09f30068a4c0f.rmeta --extern paste=/Users/emhane/repos/reth/target/debug/deps/libpaste-9858b378b3e08000.dylib --extern proptest=/Users/emhane/repos/reth/target/debug/deps/libproptest-3b059204f68d8a8d.rmeta --extern rand=/Users/emhane/repos/reth/target/debug/deps/librand-68716a3fe964b41e.rmeta --extern reth_interfaces=/Users/emhane/repos/reth/target/debug/deps/libreth_interfaces-cdb14a4f720a4f59.rmeta --extern reth_metrics=/Users/emhane/repos/reth/target/debug/deps/libreth_metrics-a73ccd1fc6b81f59.rmeta --extern reth_primitives=/Users/emhane/repos/reth/target/debug/deps/libreth_primitives-17069f5281ef2523.rmeta --extern reth_provider=/Users/emhane/repos/reth/target/debug/deps/libreth_provider-daa2719a3e338aa0.rmeta --extern reth_revm=/Users/emhane/repos/reth/target/debug/deps/libreth_revm-2a84b55e625ab854.rmeta --extern reth_tasks=/Users/emhane/repos/reth/target/debug/deps/libreth_tasks-b80c7dcec9adb578.rmeta --extern revm=/Users/emhane/repos/reth/target/debug/deps/librevm-de3cee45dce392cd.rmeta --extern schnellru=/Users/emhane/repos/reth/target/debug/deps/libschnellru-fab18c03ad2ac246.rmeta --extern serde=/Users/emhane/repos/reth/target/debug/deps/libserde-c00c8eab970e0ab0.rmeta --extern thiserror=/Users/emhane/repos/reth/target/debug/deps/libthiserror-e836f10d20e161a8.rmeta --extern tokio=/Users/emhane/repos/reth/target/debug/deps/libtokio-f06f782f6572baa7.rmeta --extern tokio_stream=/Users/emhane/repos/reth/target/debug/deps/libtokio_stream-bcc2125c52e1cc80.rmeta --extern tracing=/Users/emhane/repos/reth/target/debug/deps/libtracing-d0d98d203c27934c.rmeta --crate-version 0.1.0-alpha.13` (exit status: 101)

@emhane emhane 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 Dec 6, 2023
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Dec 6, 2023
@rkrasiuk
Copy link

rkrasiuk commented Dec 6, 2023

minimal repro of the error reported above

trait Table: Send {
    type Key;
}

struct Walker<T: Table> {
    start: T,
}

impl<T: Table> std::iter::Iterator for Walker<T> {
    type Item = Result<<T as Table>::Key, Box<dyn std::error::Error>>;

    fn next(&mut self) -> Option<Self::Item> {
        unimplemented!()
    }
}
Backtrace
thread 'rustc' panicked at compiler/rustc_infer/src/infer/generalize.rs:28:40:
called `Result::unwrap_err()` on an `Ok` value: std::result::Result<?3t, std::boxed::Box<dyn [Binder(Trait(std::error::Error), [])] + ReStatic, std::alloc::Global>>
stack backtrace:
   0:        0x103b10b84 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h561ae1a3732658b4
   1:        0x103b52a84 - core::fmt::write::had87b87f6693d406
   2:        0x103b07330 - std::io::Write::write_fmt::hfad745acf45b0223
   3:        0x103b109c0 - std::sys_common::backtrace::print::hfe7dc3b13265fa3d
   4:        0x103b133c0 - std::panicking::default_hook::{{closure}}::h1db7d03db3b12784
   5:        0x103b13108 - std::panicking::default_hook::h2441dab9aea1d7ca
   6:        0x10cefc6a8 - <alloc[c93e098ce80cffbb]::boxed::Box<rustc_driver_impl[a3eca4280d024f82]::install_ice_hook::{closure#0}> as core[93d19b53d5db826e]::ops::function::Fn<(&dyn for<'a, 'b> core[93d19b53d5db826e]::ops::function::Fn<(&'a core[93d19b53d5db826e]::panic::panic_info::PanicInfo<'b>,), Output = ()> + core[93d19b53d5db826e]::marker::Sync + core[93d19b53d5db826e]::marker::Send, &core[93d19b53d5db826e]::panic::panic_info::PanicInfo)>>::call
   7:        0x103b13a38 - std::panicking::rust_panic_with_hook::he4f1fcd294095ca5
   8:        0x103b13800 - std::panicking::begin_panic_handler::{{closure}}::ha556c0669bd1aa87
   9:        0x103b10fec - std::sys_common::backtrace::__rust_end_short_backtrace::h04b9b3c35181688e
  10:        0x103b1359c - _rust_begin_unwind
  11:        0x103b6cc08 - core::panicking::panic_fmt::h3fefc83fe5bc8bde
  12:        0x103b6d048 - core::result::unwrap_failed::h99175696506aadca
  13:        0x10d5a1ba4 - rustc_infer[fb6d7b84cbe57ced]::infer::generalize::generalize::<rustc_infer[fb6d7b84cbe57ced]::infer::generalize::CombineDelegate, rustc_middle[bbd4bcebab330050]::ty::Ty, rustc_type_ir[e6204ec9e5aaf50d]::ty_kind::TyVid>
  14:        0x10d5b34e8 - <rustc_infer[fb6d7b84cbe57ced]::infer::combine::CombineFields>::instantiate
  15:        0x10d4f6b54 - <rustc_infer[fb6d7b84cbe57ced]::infer::equate::Equate as rustc_middle[bbd4bcebab330050]::ty::relate::TypeRelation>::tys
  16:        0x10e653220 - <rustc_middle[bbd4bcebab330050]::ty::generic_args::GenericArg as rustc_middle[bbd4bcebab330050]::ty::relate::Relate>::relate::<rustc_infer[fb6d7b84cbe57ced]::infer::equate::Equate>
  17:        0x10e68d8e0 - <core[93d19b53d5db826e]::result::Result<rustc_middle[bbd4bcebab330050]::ty::generic_args::GenericArg, rustc_middle[bbd4bcebab330050]::ty::error::TypeError> as rustc_type_ir[e6204ec9e5aaf50d]::interner::CollectAndApply<rustc_middle[bbd4bcebab330050]::ty::generic_args::GenericArg, &rustc_middle[bbd4bcebab330050]::ty::list::List<rustc_middle[bbd4bcebab330050]::ty::generic_args::GenericArg>>>::collect_and_apply::<core[93d19b53d5db826e]::iter::adapters::map::Map<core[93d19b53d5db826e]::iter::adapters::zip::Zip<core[93d19b53d5db826e]::iter::adapters::copied::Copied<core[93d19b53d5db826e]::slice::iter::Iter<rustc_middle[bbd4bcebab330050]::ty::generic_args::GenericArg>>, core[93d19b53d5db826e]::iter::adapters::copied::Copied<core[93d19b53d5db826e]::slice::iter::Iter<rustc_middle[bbd4bcebab330050]::ty::generic_args::GenericArg>>>, rustc_middle[bbd4bcebab330050]::ty::relate::relate_args_invariantly<rustc_infer[fb6d7b84cbe57ced]::infer::sub::Sub>::{closure#0}>, <rustc_middle[bbd4bcebab330050]::ty::context::TyCtxt>::mk_args_from_iter<core[93d19b53d5db826e]::iter::adapters::map::Map<core[93d19b53d5db826e]::iter::adapters::zip::Zip<core[93d19b53d5db826e]::iter::adapters::copied::Copied<core[93d19b53d5db826e]::slice::iter::Iter<rustc_middle[bbd4bcebab330050]::ty::generic_args::GenericArg>>, core[93d19b53d5db826e]::iter::adapters::copied::Copied<core[93d19b53d5db826e]::slice::iter::Iter<rustc_middle[bbd4bcebab330050]::ty::generic_args::GenericArg>>>, rustc_middle[bbd4bcebab330050]::ty::relate::relate_args_invariantly<rustc_infer[fb6d7b84cbe57ced]::infer::sub::Sub>::{closure#0}>, core[93d19b53d5db826e]::result::Result<rustc_middle[bbd4bcebab330050]::ty::generic_args::GenericArg, rustc_middle[bbd4bcebab330050]::ty::error::TypeError>>::{closure#0}>
  18:        0x10e6ef024 - <rustc_infer[fb6d7b84cbe57ced]::infer::combine::CombineFields>::higher_ranked_sub::<rustc_middle[bbd4bcebab330050]::ty::sty::TraitRef>
  19:        0x10e772c80 - <rustc_infer[fb6d7b84cbe57ced]::infer::InferCtxt>::commit_if_ok::<rustc_infer[fb6d7b84cbe57ced]::infer::InferOk<()>, rustc_middle[bbd4bcebab330050]::ty::error::TypeError, <rustc_infer[fb6d7b84cbe57ced]::infer::at::Trace>::sub<rustc_middle[bbd4bcebab330050]::ty::sty::Binder<rustc_middle[bbd4bcebab330050]::ty::sty::TraitRef>>::{closure#0}>
  20:        0x10e73e338 - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::match_where_clause_trait_ref
  21:        0x10e77b848 - <rustc_infer[fb6d7b84cbe57ced]::infer::InferCtxt>::probe::<core[93d19b53d5db826e]::result::Result<rustc_middle[bbd4bcebab330050]::traits::select::EvaluationResult, rustc_middle[bbd4bcebab330050]::traits::select::OverflowError>, <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::evaluation_probe<<rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::where_clause_may_apply::{closure#0}>::{closure#0}>
  22:        0x10e73f920 - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::assemble_candidates_from_caller_bounds
  23:        0x10e73f08c - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::assemble_candidates
  24:        0x10e73af48 - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::in_task::<<rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::candidate_from_obligation::{closure#0}::{closure#0}, core[93d19b53d5db826e]::result::Result<core[93d19b53d5db826e]::option::Option<rustc_middle[bbd4bcebab330050]::traits::select::SelectionCandidate>, rustc_middle[bbd4bcebab330050]::traits::SelectionError>>::{closure#0}
  25:        0x10e746174 - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::candidate_from_obligation
  26:        0x10e74943c - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::evaluate_trait_predicate_recursively::{closure#0}::{closure#1}
  27:        0x10e7487e4 - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::evaluate_trait_predicate_recursively
  28:        0x10e7474e8 - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::evaluate_predicate_recursively
  29:        0x10e746fac - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::evaluate_predicates_recursively::<alloc[c93e098ce80cffbb]::vec::Vec<rustc_infer[fb6d7b84cbe57ced]::traits::Obligation<rustc_middle[bbd4bcebab330050]::ty::Predicate>>>
  30:        0x10e747a10 - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::evaluate_predicate_recursively
  31:        0x10e746fac - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::evaluate_predicates_recursively::<alloc[c93e098ce80cffbb]::vec::Vec<rustc_infer[fb6d7b84cbe57ced]::traits::Obligation<rustc_middle[bbd4bcebab330050]::ty::Predicate>>>
  32:        0x10e77b874 - <rustc_infer[fb6d7b84cbe57ced]::infer::InferCtxt>::probe::<core[93d19b53d5db826e]::result::Result<rustc_middle[bbd4bcebab330050]::traits::select::EvaluationResult, rustc_middle[bbd4bcebab330050]::traits::select::OverflowError>, <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::evaluation_probe<<rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::where_clause_may_apply::{closure#0}>::{closure#0}>
  33:        0x10e73f920 - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::assemble_candidates_from_caller_bounds
  34:        0x10e73f08c - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::assemble_candidates
  35:        0x10e73af48 - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::in_task::<<rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::candidate_from_obligation::{closure#0}::{closure#0}, core[93d19b53d5db826e]::result::Result<core[93d19b53d5db826e]::option::Option<rustc_middle[bbd4bcebab330050]::traits::select::SelectionCandidate>, rustc_middle[bbd4bcebab330050]::traits::SelectionError>>::{closure#0}
  36:        0x10e746174 - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::candidate_from_obligation
  37:        0x10e74943c - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::evaluate_trait_predicate_recursively::{closure#0}::{closure#1}
  38:        0x10e7487e4 - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::evaluate_trait_predicate_recursively
  39:        0x10e7474e8 - <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::evaluate_predicate_recursively
  40:        0x10e77bd90 - <rustc_infer[fb6d7b84cbe57ced]::infer::InferCtxt>::probe::<core[93d19b53d5db826e]::result::Result<rustc_middle[bbd4bcebab330050]::traits::select::EvaluationResult, rustc_middle[bbd4bcebab330050]::traits::select::OverflowError>, <rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::evaluation_probe<<rustc_trait_selection[94ffaf704d09d954]::traits::select::SelectionContext>::evaluate_root_obligation::{closure#0}>::{closure#0}>
  41:        0x10e7b2d48 - rustc_traits[ce4697066e2d466d]::evaluate_obligation::evaluate_obligation
  42:        0x10e0fcb08 - rustc_query_impl[11612d4e5e8bb9b6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[11612d4e5e8bb9b6]::query_impl::evaluate_obligation::dynamic_query::{closure#2}::{closure#0}, rustc_middle[bbd4bcebab330050]::query::erase::Erased<[u8; 2usize]>>
  43:        0x10e2dc014 - <rustc_query_impl[11612d4e5e8bb9b6]::query_impl::evaluate_obligation::dynamic_query::{closure#2} as core[93d19b53d5db826e]::ops::function::FnOnce<(rustc_middle[bbd4bcebab330050]::ty::context::TyCtxt, rustc_type_ir[e6204ec9e5aaf50d]::canonical::Canonical<rustc_middle[bbd4bcebab330050]::ty::context::TyCtxt, rustc_middle[bbd4bcebab330050]::ty::ParamEnvAnd<rustc_middle[bbd4bcebab330050]::ty::Predicate>>)>>::call_once
  44:        0x10e03ea20 - rustc_query_system[d3408316a25468eb]::query::plumbing::try_execute_query::<rustc_query_impl[11612d4e5e8bb9b6]::DynamicConfig<rustc_query_system[d3408316a25468eb]::query::caches::DefaultCache<rustc_type_ir[e6204ec9e5aaf50d]::canonical::Canonical<rustc_middle[bbd4bcebab330050]::ty::context::TyCtxt, rustc_middle[bbd4bcebab330050]::ty::ParamEnvAnd<rustc_middle[bbd4bcebab330050]::ty::Predicate>>, rustc_middle[bbd4bcebab330050]::query::erase::Erased<[u8; 2usize]>>, false, false, false>, rustc_query_impl[11612d4e5e8bb9b6]::plumbing::QueryCtxt, false>
  45:        0x10e2164b4 - rustc_query_impl[11612d4e5e8bb9b6]::query_impl::evaluate_obligation::get_query_non_incr::__rust_end_short_backtrace
  46:        0x10e7975cc - <rustc_infer[fb6d7b84cbe57ced]::infer::InferCtxt as rustc_trait_selection[94ffaf704d09d954]::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation
  47:        0x1025efbb4 - <rustdoc[8e8bb84a9b960d27]::clean::blanket_impl::BlanketImplFinder>::get_blanket_impls
  48:        0x102502268 - rustdoc[8e8bb84a9b960d27]::clean::utils::get_auto_trait_and_blanket_impls
  49:        0x10260951c - <rustdoc[8e8bb84a9b960d27]::passes::collect_trait_impls::SyntheticImplCollector as rustdoc[8e8bb84a9b960d27]::visit::DocVisitor>::visit_item
  50:        0x102609620 - <rustdoc[8e8bb84a9b960d27]::passes::collect_trait_impls::SyntheticImplCollector as rustdoc[8e8bb84a9b960d27]::visit::DocVisitor>::visit_item
  51:        0x102609620 - <rustdoc[8e8bb84a9b960d27]::passes::collect_trait_impls::SyntheticImplCollector as rustdoc[8e8bb84a9b960d27]::visit::DocVisitor>::visit_item
  52:        0x10260728c - rustdoc[8e8bb84a9b960d27]::passes::collect_trait_impls::collect_trait_impls
  53:        0x10260f224 - rustdoc[8e8bb84a9b960d27]::main_args::{closure#1}::{closure#0}::{closure#0}
  54:        0x10258b2ec - <rustc_interface[f65de6e25abf875a]::interface::Compiler>::enter::<rustdoc[8e8bb84a9b960d27]::main_args::{closure#1}::{closure#0}, core[93d19b53d5db826e]::result::Result<(), rustc_span[b5f51429c77c489e]::ErrorGuaranteed>>
  55:        0x102692aec - rustc_interface[f65de6e25abf875a]::interface::run_compiler::<core[93d19b53d5db826e]::result::Result<(), rustc_span[b5f51429c77c489e]::ErrorGuaranteed>, rustdoc[8e8bb84a9b960d27]::main_args::{closure#1}>::{closure#0}
  56:        0x10268de84 - std[362851305dc41231]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[f65de6e25abf875a]::util::run_in_thread_with_globals<rustc_interface[f65de6e25abf875a]::util::run_in_thread_pool_with_globals<rustc_interface[f65de6e25abf875a]::interface::run_compiler<core[93d19b53d5db826e]::result::Result<(), rustc_span[b5f51429c77c489e]::ErrorGuaranteed>, rustdoc[8e8bb84a9b960d27]::main_args::{closure#1}>::{closure#0}, core[93d19b53d5db826e]::result::Result<(), rustc_span[b5f51429c77c489e]::ErrorGuaranteed>>::{closure#0}, core[93d19b53d5db826e]::result::Result<(), rustc_span[b5f51429c77c489e]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[93d19b53d5db826e]::result::Result<(), rustc_span[b5f51429c77c489e]::ErrorGuaranteed>>
  57:        0x1024bc830 - <<std[362851305dc41231]::thread::Builder>::spawn_unchecked_<rustc_interface[f65de6e25abf875a]::util::run_in_thread_with_globals<rustc_interface[f65de6e25abf875a]::util::run_in_thread_pool_with_globals<rustc_interface[f65de6e25abf875a]::interface::run_compiler<core[93d19b53d5db826e]::result::Result<(), rustc_span[b5f51429c77c489e]::ErrorGuaranteed>, rustdoc[8e8bb84a9b960d27]::main_args::{closure#1}>::{closure#0}, core[93d19b53d5db826e]::result::Result<(), rustc_span[b5f51429c77c489e]::ErrorGuaranteed>>::{closure#0}, core[93d19b53d5db826e]::result::Result<(), rustc_span[b5f51429c77c489e]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[93d19b53d5db826e]::result::Result<(), rustc_span[b5f51429c77c489e]::ErrorGuaranteed>>::{closure#1} as core[93d19b53d5db826e]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  58:        0x103b1bc30 - std::sys::unix::thread::Thread::new::thread_start::h1123e84c80816a72
  59:        0x19fc13fa8 - __pthread_joiner_wake

error: the compiler unexpectedly panicked. this is a bug.

@DaniPopes
Copy link
Contributor

DaniPopes commented Dec 6, 2023

Same ICE with cargo doc in futures-util (rust-lang/futures-rs@ae3297f)

#117088 cc @lcnr @compiler-errors

searched nightlies: from nightly-2023-12-03 to nightly-2023-12-06
regressed nightly: nightly-2023-12-06
searched commit range: 0e2dac8...e9013ac
regressed commit: 25dca40

bisected with cargo-bisect-rustc v0.6.7

Host triple: x86_64-unknown-linux-gnu
Reproduce with:

cargo bisect-rustc -vv --start 2023-12-03 --regress ice --script=cargo -- doc

@saethlin saethlin removed the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Dec 7, 2023
@lcnr lcnr self-assigned this Dec 7, 2023
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

Successfully merging a pull request may close this issue.

6 participants