Skip to content

Panic - Future still here when dropping #2278

Closed
@AgeManning

Description

@AgeManning

Hey all,

A user has experienced a panic. The exact state of the application is not known, however it appears there is an unexpected panic in the FuturesUnordered struct. It appears they are hitting this "bomb"

// Consequently it *should* be the case that we always drop futures from
// the `FuturesUnordered` instance. This is a bomb, just in case there's
// a bug in that logic.
which would indicate some logic error.

Here is the provided backtrace

thread 'tokio-runtime-worker' panicked at 'future still here when dropping', /cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.8/src/stream/futures_unordered/abort.rs:11:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'tokio-runtime-worker' panicked at 'panicking twice to abort the program', /cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.8/src/stream/futures_unordered/abort.rs:6:13
stack backtrace:
   0:     0x563c1d8449e0 - std::backtrace_rs::backtrace::libunwind::trace::h577ea05e9ca4629a
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/../../backtrace/src/backtrace/libunwind.rs:96
   1:     0x563c1d8449e0 - std::backtrace_rs::backtrace::trace_unsynchronized::h50b9b72b84c7dd56
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/../../backtrace/src/backtrace/mod.rs:66
   2:     0x563c1d8449e0 - std::sys_common::backtrace::_print_fmt::h6541cf9823837fac
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys_common/backtrace.rs:79
   3:     0x563c1d8449e0 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf64fbff071026df5
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys_common/backtrace.rs:58
   4:     0x563c1d86a1fc - core::fmt::write::h9ddafa4860d8adff
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/core/src/fmt/mod.rs:1082
   5:     0x563c1d83c167 - std::io::Write::write_fmt::h1d2ee292d2b65481
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/io/mod.rs:1514
   6:     0x563c1d847190 - std::sys_common::backtrace::_print::ha25f9ff5080d886d
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys_common/backtrace.rs:61
   7:     0x563c1d847190 - std::sys_common::backtrace::print::h213e8aa8dc5405c0
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys_common/backtrace.rs:48
   8:     0x563c1d847190 - std::panicking::default_hook::{{closure}}::h6482fae49ef9d963
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panicking.rs:200
   9:     0x563c1d846edc - std::panicking::default_hook::he30ad7589e0970f9
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panicking.rs:219
  10:     0x563c1d8477f3 - std::panicking::rust_panic_with_hook::haa1ed36ada4ffb03
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panicking.rs:569
  11:     0x563c1d4a5d44 - std::panicking::begin_panic::{{closure}}::h3129100e5dcd1a95
  12:     0x563c1d4a5d1c - std::sys_common::backtrace::__rust_end_short_backtrace::h8e3108636f7dc442
  13:     0x563c1d4a5c6c - std::panicking::begin_panic::h563b6e30158033e7
  14:     0x563c1d4a5c39 - <futures_util::stream::futures_unordered::abort::abort::DoublePanic as core::ops::drop::Drop>::drop::h4ae5ebe2e6254e92
  15:     0x563c1d4a5ba7 - core::ptr::drop_in_place::hf8282f6f6282e443
  16:     0x563c1d4a5c1e - futures_util::stream::futures_unordered::abort::abort::h387364437e9f6150
  17:     0x563c1cac2458 - alloc::sync::Arc<T>::drop_slow::h6f7325f7ea6b0a8f
  18:     0x563c1c19a749 - futures_task::waker::drop_arc_raw::h1011981eb8e5dd09
  19:     0x563c1cf16537 - alloc::sync::Arc<T>::drop_slow::h034a37d14942ad66
  20:     0x563c1cf0358d - core::ptr::drop_in_place::h2c70017680f0de9a
  21:     0x563c1cf03f3c - core::ptr::drop_in_place::hd5665fe93db9ea4f
  22:     0x563c1cac1f94 - alloc::sync::Arc<T>::drop_slow::h6cd19f8b610f1267
  23:     0x563c1c3e5fe5 - core::ptr::drop_in_place::h53564196ac62d43f
  24:     0x563c1c3faa83 - core::ptr::drop_in_place::hb772663b1eb3ec8d
  25:     0x563c1c3d381c - core::ptr::drop_in_place::h07b7b117b05e40c1
  26:     0x563c1c3ed75d - core::ptr::drop_in_place::h7c62f27a2445f8bc
  27:     0x563c1c3774b3 - <libp2p_core::connection::manager::task::Task<F,M,H,I,O,E> as core::future::future::Future>::poll::h3c4b8a6339a28abb
  28:     0x563c1ceadc7b - tokio::runtime::handle::Handle::enter::hd26eacbf130d9886
  29:     0x563c1ced9f4a - <futures_util::future::select::Select<A,B> as core::future::future::Future>::poll::hbf03338d8e85248f
  30:     0x563c1ce9fa46 - <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll::hfbbf3e67de26f8a2
  31:     0x563c1ce7d4d1 - <futures_util::future::future::flatten::Flatten<Fut,<Fut as core::future::future::Future>::Output> as core::future::future::Future>::poll::ha0acc3729a79e574
  32:     0x563c1ceed3dd - <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h4758cbd6597e0484
  33:     0x563c1ceacc0c - tokio::runtime::task::harness::Harness<T,S>::poll::h3c03e6b7a19198fe
  34:     0x563c1d3b4934 - std::thread::local::LocalKey<T>::with::ha0f5f4c2439f329b
  35:     0x563c1d3d824e - tokio::runtime::thread_pool::worker::Context::run_task::h9ca01fbeb7bfefcc
  36:     0x563c1d3d73e0 - tokio::runtime::thread_pool::worker::Context::run::h6f02d519c2949342
  37:     0x563c1d3c7723 - tokio::macros::scoped_tls::ScopedKey<T>::set::h695d36504f5d390c
  38:     0x563c1d3d6e59 - tokio::runtime::thread_pool::worker::run::h34b0ab6a660b1fcf
  39:     0x563c1d3cf436 - tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut::hf2e66298b82890e6
  40:     0x563c1d3df242 - tokio::runtime::task::harness::Harness<T,S>::poll::hebb35df369eff3a3
  41:     0x563c1d3c9f69 - tokio::runtime::blocking::pool::Inner::run::h34faf12e1db9f844
  42:     0x563c1d3b4552 - std::sys_common::backtrace::__rust_begin_short_backtrace::h207a11dbaec6c57a
  43:     0x563c1d3c27fc - core::ops::function::FnOnce::call_once{{vtable.shim}}::h73f7feeaf931bc04
  44:     0x563c1d84ca4a - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h670c50864ac2cb92
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/alloc/src/boxed.rs:1042
  45:     0x563c1d84ca4a - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h2511952749086d81
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/alloc/src/boxed.rs:1042
  46:     0x563c1d84ca4a - std::sys::unix::thread::Thread::new::thread_start::h5ad4ddffe24373a8
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys/unix/thread.rs:87
  47:     0x7f6ef741c609 - start_thread
  48:     0x7f6ef7328293 - clone
  49:                0x0 - <unknown>
thread panicked while panicking. aborting.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-streamArea: futures::stream

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions