Skip to content

Panic in relay connection #984

@maan2003

Description

@maan2003

Describe the bug

This panic happen when:

  • app is in foregound
  • the phone is put to sleep (using power button)
  • OS breaks the tcp connection to server
  • app comes to foreground
  • panic 💥

panicked at /Users/runner/.cache/fs-dir-cache/build-bridge-ios-032ca8d5c8b86e0bd04d7999f20bfb664b46c8493c6878ba11f83080fb675d12/home/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/sink/map_err.rs:26:33: polled MapErr after completion

backtrace
   0: std::backtrace_rs::backtrace::libunwind::trace
             at ./rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1: std::backtrace_rs::backtrace::trace_unsynchronized
             at ./rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2: std::backtrace::Backtrace::create
             at ./rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/backtrace.rs:331:13
   3: {closure#0}
             at ./build/source/bridge/fedi-ffi/src/ffi.rs:99:29
   4: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
             at ./rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/alloc/src/boxed.rs:1980:9
   5: std::panicking::rust_panic_with_hook
             at ./rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:841:13
   6: std::panicking::begin_panic_handler::{{closure}}
             at ./rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:706:13
   7: std::sys::backtrace::__rust_end_short_backtrace
             at ./rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/sys/backtrace.rs:168:18
   8: __rustc::rust_begin_unwind
             at ./rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:697:5
   9: core::panicking::panic_fmt
             at ./rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/panicking.rs:75:14
  10: core::panicking::panic_display
             at ./rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/panicking.rs:261:5
  11: core::option::expect_failed
             at ./rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/option.rs:2024:5
  12: expect<fn(async_wsocket::native::error::Error) -> nostr_relay_pool::transport::error::TransportError>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/core/src/option.rs:933:21
  13: take_f<futures_util::stream::stream::split::SplitSink<async_wsocket::socket::WebSocket, async_wsocket::message::Message>, fn(async_wsocket::native::error::Error) -> nostr_relay_pool::transport::error::TransportError>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/futures-util-0.3.31/src/sink/map_err.rs:26:9
  14: map_err<(), async_wsocket::native::error::Error, nostr_relay_pool::transport::error::TransportError, futures_util::sink::map_err::{impl#1}::poll_close::{closure_env#0}<futures_util::stream::stream::split::SplitSink<async_wsocket::socket::WebSocket, async_wsocket::message::Message>, fn(async_wsocket::native::error::Error) -> nostr_relay_pool::transport::error::TransportError, nostr_relay_pool::transport::error::TransportError, async_wsocket::message::Message>>
  15: poll_close<futures_util::stream::stream::split::SplitSink<async_wsocket::socket::WebSocket, async_wsocket::message::Message>, fn(async_wsocket::native::error::Error) -> nostr_relay_pool::transport::error::TransportError, nostr_relay_pool::transport::error::TransportError, async_wsocket::message::Message>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/futures-util-0.3.31/src/sink/map_err.rs:50:9
  16: poll_close<(dyn futures_sink::Sink<async_wsocket::message::Message, Error=nostr_relay_pool::transport::error::TransportError> + core::marker::Send + core::marker::Unpin), async_wsocket::message::Message>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/futures-sink-0.3.31/src/lib.rs:237:13
  17: poll_close<alloc::boxed::Box<(dyn futures_sink::Sink<async_wsocket::message::Message, Error=nostr_relay_pool::transport::error::TransportError> + core::marker::Send + core::marker::Unpin), alloc::alloc::Global>, async_wsocket::message::Message>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/futures-sink-0.3.31/src/lib.rs:135:9
  18: poll<alloc::boxed::Box<(dyn futures_sink::Sink<async_wsocket::message::Message, Error=nostr_relay_pool::transport::error::TransportError> + core::marker::Send + core::marker::Unpin), alloc::alloc::Global>, async_wsocket::message::Message>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/futures-util-0.3.31/src/sink/close.rs:30:9
  19: poll<futures_util::sink::close::Close<alloc::boxed::Box<(dyn futures_sink::Sink<async_wsocket::message::Message, Error=nostr_relay_pool::transport::error::TransportError> + core::marker::Send + core::marker::Unpin), alloc::alloc::Global>, async_wsocket::message::Message>>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/time/timeout.rs:202:33
  20: {async_fn#0}<futures_util::sink::close::Close<alloc::boxed::Box<(dyn futures_sink::Sink<async_wsocket::message::Message, Error=nostr_relay_pool::transport::error::TransportError> + core::marker::Send + core::marker::Unpin), alloc::alloc::Global>, async_wsocket::message::Message>>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/async-utility-0.3.1/src/time.rs:42:51
  21: {async_fn#0}
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/nostr-relay-pool-0.41.0/src/relay/inner.rs:2106:65
  22: {async_fn#0}
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/nostr-relay-pool-0.41.0/src/relay/inner.rs:699:36
  23: {async_fn#0}
  24: {async_fn#0}
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/nostr-relay-pool-0.41.0/src/relay/inner.rs:474:18
  25: {closure#0}<nostr_relay_pool::relay::inner::{impl#3}::connection_task::{async_fn_env#0}, alloc::sync::Arc<tokio::runtime::scheduler::current_thread::Handle, alloc::alloc::Global>>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/task/core.rs:331:17
  26: with_mut<tokio::runtime::task::core::Stage<nostr_relay_pool::relay::inner::{impl#3}::connection_task::{async_fn_env#0}>, core::task::poll::Poll<()>, tokio::runtime::task::core::{impl#6}::poll::{closure_env#0}<nostr_relay_pool::relay::inner::{impl#3}::connection_task::{async_fn_env#0}, alloc::sync::Arc<tokio::runtime::scheduler::current_thread::Handle, alloc::alloc::Global>>>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/loom/std/unsafe_cell.rs:16:9
  27: poll<nostr_relay_pool::relay::inner::{impl#3}::connection_task::{async_fn_env#0}, alloc::sync::Arc<tokio::runtime::scheduler::current_thread::Handle, alloc::alloc::Global>>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/task/core.rs:320:13
  28: {closure#0}<nostr_relay_pool::relay::inner::{impl#3}::connection_task::{async_fn_env#0}, alloc::sync::Arc<tokio::runtime::scheduler::current_thread::Handle, alloc::alloc::Global>>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/task/harness.rs:532:19
  29: call_once<core::task::poll::Poll<()>, tokio::runtime::task::harness::poll_future::{closure_env#0}<nostr_relay_pool::relay::inner::{impl#3}::connection_task::{async_fn_env#0}, alloc::sync::Arc<tokio::runtime::scheduler::current_thread::Handle, alloc::alloc::Global>>>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:272:9
  30: do_call<core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future::{closure_env#0}<nostr_relay_pool::relay::inner::{impl#3}::connection_task::{async_fn_env#0}, alloc::sync::Arc<tokio::runtime::scheduler::current_thread::Handle, alloc::alloc::Global>>>, core::task::poll::Poll<()>>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40
  31: try<core::task::poll::Poll<()>, core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future::{closure_env#0}<nostr_relay_pool::relay::inner::{impl#3}::connection_task::{async_fn_env#0}, alloc::sync::Arc<tokio::runtime::scheduler::current_thread::Handle, alloc::alloc::Global>>>>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19
  32: catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future::{closure_env#0}<nostr_relay_pool::relay::inner::{impl#3}::connection_task::{async_fn_env#0}, alloc::sync::Arc<tokio::runtime::scheduler::current_thread::Handle, alloc::alloc::Global>>>, core::task::poll::Poll<()>>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
  33: tokio::runtime::task::harness::poll_future::<<nostr_relay_pool::relay::inner::InnerRelay>::connection_task::{closure#0}, alloc::sync::Arc<tokio::runtime::scheduler::current_thread::Handle>>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/task/harness.rs:520:18
  34: poll_inner<nostr_relay_pool::relay::inner::{impl#3}::connection_task::{async_fn_env#0}, alloc::sync::Arc<tokio::runtime::scheduler::current_thread::Handle, alloc::alloc::Global>>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/task/harness.rs:209:27
  35: <tokio::runtime::task::harness::Harness<<nostr_relay_pool::relay::inner::InnerRelay>::connection_task::{closure#0}, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>>::poll
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/task/harness.rs:154:15
  36: poll
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/task/raw.rs:201:18
  37: run<alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle, alloc::alloc::Global>>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/task/mod.rs:463:9
  38: {closure#0}
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/scheduler/multi_thread/worker.rs:600:13
  39: with_budget<core::result::Result<alloc::boxed::Box<tokio::runtime::scheduler::multi_thread::worker::Core, alloc::alloc::Global>, ()>, tokio::runtime::scheduler::multi_thread::worker::{impl#1}::run_task::{closure_env#0}>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/task/coop/mod.rs:167:5
  40: budget<core::result::Result<alloc::boxed::Box<tokio::runtime::scheduler::multi_thread::worker::Core, alloc::alloc::Global>, ()>, tokio::runtime::scheduler::multi_thread::worker::{impl#1}::run_task::{closure_env#0}>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/task/coop/mod.rs:133:5
  41: run_task
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/scheduler/multi_thread/worker.rs:594:9
  42: run
  43: {closure#0}
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/scheduler/multi_thread/worker.rs:507:21
  44: set<tokio::runtime::scheduler::Context, tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure_env#0}, ()>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/context/scoped.rs:40:9
  45: tokio::runtime::context::set_scheduler::<(), tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure#0}>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/context.rs:176:9
  46: {closure#0}
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/scheduler/multi_thread/worker.rs:502:9
  47: enter_runtime<tokio::runtime::scheduler::multi_thread::worker::run::{closure_env#0}, ()>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/context/runtime.rs:65:16
  48: run
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/scheduler/multi_thread/worker.rs:494:5
  49: {closure#0}<fedimint_rocksdb::convert_to_async_stream::{closure#0}::{async_block#0}::{closure_env#0}<core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>>, core::option::Option<((alloc::vec::Vec<u8, alloc::alloc::Global>, alloc::vec::Vec<u8, alloc::alloc::Global>), core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>)>>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/scheduler/multi_thread/worker.rs:435:41
  50: poll<tokio::runtime::scheduler::multi_thread::worker::block_in_place::{closure#0}::{closure_env#0}<fedimint_rocksdb::convert_to_async_stream::{closure#0}::{async_block#0}::{closure_env#0}<core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>>, core::option::Option<((alloc::vec::Vec<u8, alloc::alloc::Global>, alloc::vec::Vec<u8, alloc::alloc::Global>), core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>)>>, ()>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/blocking/task.rs:42:21
  51: {closure#0}<tokio::runtime::blocking::task::BlockingTask<tokio::runtime::scheduler::multi_thread::worker::block_in_place::{closure#0}::{closure_env#0}<fedimint_rocksdb::convert_to_async_stream::{closure#0}::{async_block#0}::{closure_env#0}<core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>>, core::option::Option<((alloc::vec::Vec<u8, alloc::alloc::Global>, alloc::vec::Vec<u8, alloc::alloc::Global>), core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>)>>>, tokio::runtime::blocking::schedule::BlockingSchedule>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/task/core.rs:331:17
  52: with_mut<tokio::runtime::task::core::Stage<tokio::runtime::blocking::task::BlockingTask<tokio::runtime::scheduler::multi_thread::worker::block_in_place::{closure#0}::{closure_env#0}<fedimint_rocksdb::convert_to_async_stream::{closure#0}::{async_block#0}::{closure_env#0}<core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>>, core::option::Option<((alloc::vec::Vec<u8, alloc::alloc::Global>, alloc::vec::Vec<u8, alloc::alloc::Global>), core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>)>>>>, core::task::poll::Poll<()>, tokio::runtime::task::core::{impl#6}::poll::{closure_env#0}<tokio::runtime::blocking::task::BlockingTask<tokio::runtime::scheduler::multi_thread::worker::block_in_place::{closure#0}::{closure_env#0}<fedimint_rocksdb::convert_to_async_stream::{closure#0}::{async_block#0}::{closure_env#0}<core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>>, core::option::Option<((alloc::vec::Vec<u8, alloc::alloc::Global>, alloc::vec::Vec<u8, alloc::alloc::Global>), core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>)>>>, tokio::runtime::blocking::schedule::BlockingSchedule>>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/loom/std/unsafe_cell.rs:16:9
  53: poll<tokio::runtime::blocking::task::BlockingTask<tokio::runtime::scheduler::multi_thread::worker::block_in_place::{closure#0}::{closure_env#0}<fedimint_rocksdb::convert_to_async_stream::{closure#0}::{async_block#0}::{closure_env#0}<core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>>, core::option::Option<((alloc::vec::Vec<u8, alloc::alloc::Global>, alloc::vec::Vec<u8, alloc::alloc::Global>), core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>)>>>, tokio::runtime::blocking::schedule::BlockingSchedule>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/task/core.rs:320:13
  54: {closure#0}<tokio::runtime::blocking::task::BlockingTask<tokio::runtime::scheduler::multi_thread::worker::block_in_place::{closure#0}::{closure_env#0}<fedimint_rocksdb::convert_to_async_stream::{closure#0}::{async_block#0}::{closure_env#0}<core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>>, core::option::Option<((alloc::vec::Vec<u8, alloc::alloc::Global>, alloc::vec::Vec<u8, alloc::alloc::Global>), core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>)>>>, tokio::runtime::blocking::schedule::BlockingSchedule>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/task/harness.rs:532:19
  55: call_once<core::task::poll::Poll<()>, tokio::runtime::task::harness::poll_future::{closure_env#0}<tokio::runtime::blocking::task::BlockingTask<tokio::runtime::scheduler::multi_thread::worker::block_in_place::{closure#0}::{closure_env#0}<fedimint_rocksdb::convert_to_async_stream::{closure#0}::{async_block#0}::{closure_env#0}<core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>>, core::option::Option<((alloc::vec::Vec<u8, alloc::alloc::Global>, alloc::vec::Vec<u8, alloc::alloc::Global>), core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>)>>>, tokio::runtime::blocking::schedule::BlockingSchedule>>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:272:9
  56: do_call<core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future::{closure_env#0}<tokio::runtime::blocking::task::BlockingTask<tokio::runtime::scheduler::multi_thread::worker::block_in_place::{closure#0}::{closure_env#0}<fedimint_rocksdb::convert_to_async_stream::{closure#0}::{async_block#0}::{closure_env#0}<core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>>, core::option::Option<((alloc::vec::Vec<u8, alloc::alloc::Global>, alloc::vec::Vec<u8, alloc::alloc::Global>), core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>)>>>, tokio::runtime::blocking::schedule::BlockingSchedule>>, core::task::poll::Poll<()>>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40
  57: try<core::task::poll::Poll<()>, core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future::{closure_env#0}<tokio::runtime::blocking::task::BlockingTask<tokio::runtime::scheduler::multi_thread::worker::block_in_place::{closure#0}::{closure_env#0}<fedimint_rocksdb::convert_to_async_stream::{closure#0}::{async_block#0}::{closure_env#0}<core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>>, core::option::Option<((alloc::vec::Vec<u8, alloc::alloc::Global>, alloc::vec::Vec<u8, alloc::alloc::Global>), core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>)>>>, tokio::runtime::blocking::schedule::BlockingSchedule>>>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19
  58: catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future::{closure_env#0}<tokio::runtime::blocking::task::BlockingTask<tokio::runtime::scheduler::multi_thread::worker::block_in_place::{closure#0}::{closure_env#0}<fedimint_rocksdb::convert_to_async_stream::{closure#0}::{async_block#0}::{closure_env#0}<core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>>, core::option::Option<((alloc::vec::Vec<u8, alloc::alloc::Global>, alloc::vec::Vec<u8, alloc::alloc::Global>), core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>)>>>, tokio::runtime::blocking::schedule::BlockingSchedule>>, core::task::poll::Poll<()>>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
  59: tokio::runtime::task::harness::poll_future::<tokio::runtime::blocking::task::BlockingTask<tokio::runtime::scheduler::multi_thread::worker::block_in_place<<fedimint_rocksdb::RocksDbTransaction as fedimint_core::db::IDatabaseTransactionOps>::set_tx_savepoint::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/task/harness.rs:520:18
  60: poll_inner<tokio::runtime::blocking::task::BlockingTask<tokio::runtime::scheduler::multi_thread::worker::block_in_place::{closure#0}::{closure_env#0}<fedimint_rocksdb::convert_to_async_stream::{closure#0}::{async_block#0}::{closure_env#0}<core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>>, core::option::Option<((alloc::vec::Vec<u8, alloc::alloc::Global>, alloc::vec::Vec<u8, alloc::alloc::Global>), core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::db::DBWithThreadModeInner>>, fedimint_rocksdb::{impl#13}::raw_find_by_range::{async_block#0}::{closure#0}::{closure_env#0}>)>>>, tokio::runtime::blocking::schedule::BlockingSchedule>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/task/harness.rs:209:27
  61: <tokio::runtime::task::harness::Harness<tokio::runtime::blocking::task::BlockingTask<tokio::runtime::scheduler::multi_thread::worker::block_in_place<<fedimint_rocksdb::RocksDbTransaction as fedimint_core::db::IDatabaseTransactionOpsCore>::raw_find_by_range::{closure#0}::{closure#0}, core::pin::Pin<alloc::boxed::Box<futures_util::stream::unfold::Unfold<core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::transactions::transaction::Transaction<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::transactions::optimistic_transaction_db::OptimisticTransactionDBInner>>>, <fedimint_rocksdb::RocksDbTransaction as fedimint_core::db::IDatabaseTransactionOpsCore>::raw_find_by_range::{closure#0}::{closure#0}::{closure#0}>, fedimint_rocksdb::convert_to_async_stream<core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::transactions::transaction::Transaction<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::transactions::optimistic_transaction_db::OptimisticTransactionDBInner>>>, <fedimint_rocksdb::RocksDbTransaction as fedimint_core::db::IDatabaseTransactionOpsCore>::raw_find_by_range::{closure#0}::{closure#0}::{closure#0}>>::{closure#0}, fedimint_rocksdb::convert_to_async_stream<core::iter::adapters::map_while::MapWhile<rocksdb::db_iterator::DBIteratorWithThreadMode<rocksdb::transactions::transaction::Transaction<rocksdb::db::DBCommon<rocksdb::db::SingleThreaded, rocksdb::transactions::optimistic_transaction_db::OptimisticTransactionDBInner>>>, <fedimint_rocksdb::RocksDbTransaction as fedimint_core::db::IDatabaseTransactionOpsCore>::raw_find_by_range::{closure#0}::{closure#0}::{closure#0}>>::{closure#0}::{closure#0}>>>>::{closure#0}::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule>>::poll
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/task/harness.rs:154:15
  62: poll
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/task/raw.rs:201:18
  63: run<tokio::runtime::blocking::schedule::BlockingSchedule>
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/task/mod.rs:500:9
  64: run
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/blocking/pool.rs:161:9
  65: run
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/blocking/pool.rs:511:17
  66: {closure#0}
             at ./nix/store/s5dvlqkr475r4g80zz2mgi51l9qiyima-vendor-cargo-deps/c19b7c6f923b580ac259164a89f2577984ad5ab09ee9d583b888f934adbbe8d0/tokio-1.45.1/src/runtime/blocking/pool.rs:469:13
  67: __rust_begin_short_backtrace<tokio::runtime::blocking::pool::{impl#6}::spawn_thread::{closure_env#0}, ()>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:152:18
  68: {closure#0}<tokio::runtime::blocking::pool::{impl#6}::spawn_thread::{closure_env#0}, ()>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/std/src/thread/mod.rs:559:17
  69: call_once<(), std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<tokio::runtime::blocking::pool::{impl#6}::spawn_thread::{closure_env#0}, ()>>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:272:9
  70: do_call<core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<tokio::runtime::blocking::pool::{impl#6}::spawn_thread::{closure_env#0}, ()>>, ()>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40
  71: try<(), core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<tokio::runtime::blocking::pool::{impl#6}::spawn_thread::{closure_env#0}, ()>>>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19
  72: catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<tokio::runtime::blocking::pool::{impl#6}::spawn_thread::{closure_env#0}, ()>>, ()>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
  73: {closure#1}<tokio::runtime::blocking::pool::{impl#6}::spawn_thread::{closure_env#0}, ()>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/std/src/thread/mod.rs:557:30
  74: call_once<std::thread::{impl#0}::spawn_unchecked_::{closure_env#1}<tokio::runtime::blocking::pool::{impl#6}::spawn_thread::{closure_env#0}, ()>, ()>
             at ./nix/store/dkqdvbd0adfkdr15ml8j2iwz61nnj9v5-rust-mixed/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  75: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
             at ./rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/alloc/src/boxed.rs:1966:9
  76: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
             at ./rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/alloc/src/boxed.rs:1966:9
  77: std::sys::pal::unix::thread::Thread::new::thread_start
             at ./rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/sys/pal/unix/thread.rs:109:17
  78: _ZL15__pthread_startPv
  79: __start_thread

To Reproduce

unsure how to repro outside our closed source app.

Expected behavior
no panicking

Build environment

  • Library: nostr-sdk
  • Version/tag/commit: v0.41
  • OS+version: iOS (many versions) and Android

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions