Skip to content

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

Closed
@emhane

Description

@emhane

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)

Metadata

Metadata

Assignees

Labels

C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions