diff --git a/Cargo.lock b/Cargo.lock index cd0ba23..b5be784 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -863,6 +863,7 @@ dependencies = [ "tokio", "tokio-stream", "tracing", + "tracing-subscriber", "url", "urlencoding", "uuid", @@ -926,6 +927,7 @@ dependencies = [ "tokio", "tokio-stream", "tracing", + "tracing-subscriber", ] [[package]] diff --git a/crates/dht/Cargo.toml b/crates/dht/Cargo.toml index 5552dac..5c40a64 100644 --- a/crates/dht/Cargo.toml +++ b/crates/dht/Cargo.toml @@ -35,3 +35,4 @@ clone_to_owned = {path="../clone_to_owned", package="librqbit-clone-to-owned", v librqbit-core = {path="../librqbit_core", version = "2.2.1"} [dev-dependencies] +tracing-subscriber = "0.3" \ No newline at end of file diff --git a/crates/dht/src/main.rs b/crates/dht/examples/dht.rs similarity index 97% rename from crates/dht/src/main.rs rename to crates/dht/examples/dht.rs index 5c2f1e6..469e0f6 100644 --- a/crates/dht/src/main.rs +++ b/crates/dht/examples/dht.rs @@ -8,6 +8,8 @@ use tracing::info; #[tokio::main] async fn main() -> anyhow::Result<()> { let info_hash = Id20::from_str("64a980abe6e448226bb930ba061592e44c3781a1").unwrap(); + tracing_subscriber::fmt::init(); + let dht = Dht::new().await.context("error initializing DHT")?; let mut stream = dht.get_peers(info_hash).await?; diff --git a/crates/librqbit/Cargo.toml b/crates/librqbit/Cargo.toml index bc7ca03..4095553 100644 --- a/crates/librqbit/Cargo.toml +++ b/crates/librqbit/Cargo.toml @@ -61,3 +61,4 @@ dashmap = "5.5.3" [dev-dependencies] futures = {version = "0.3"} +tracing-subscriber = "0.3" \ No newline at end of file diff --git a/crates/librqbit/README.md b/crates/librqbit/README.md index dfa4845..0e33b14 100644 --- a/crates/librqbit/README.md +++ b/crates/librqbit/README.md @@ -3,38 +3,10 @@ A torrent library 100% written in rust ## Basic example +See ```examples``` folder. This is a simple program on how to use this library This program will just download a simple torrent file with a Magnet link ```rust -use std::error::Error; -use std::path::PathBuf; -use librqbit::session::{AddTorrentResponse, Session}; -use librqbit::spawn_utils::BlockingSpawner; -const MAGNET_LINK: &str = "magnet:?..."; // Put your magnet link here - -#[tokio::main] -async fn main() -> Result<(), Box>{ - - // Create the session - let session = Session::new("C:\\Anime".parse().unwrap(), BlockingSpawner::new(false)).await?; - - // Add the torrent to the session - let handle = match session.add_torrent(MAGNET_LINK, None).await { - Ok(AddTorrentResponse::Added(handle)) => { - Ok(handle) - }, - Err(e) => { - eprintln!("Something goes wrong when downloading torrent : {:?}", e); - Err(()) - } - _ => Err(()) - }.expect("Failed to add torrent to the session"); - - // Wait until the download is completed - handle.wait_until_completed().await?; - - Ok(()) -} ``` \ No newline at end of file diff --git a/crates/librqbit/examples/ubuntu.rs b/crates/librqbit/examples/ubuntu.rs new file mode 100644 index 0000000..6813043 --- /dev/null +++ b/crates/librqbit/examples/ubuntu.rs @@ -0,0 +1,69 @@ +// For production-grade code look at rqbit::main(), which does the same but has more options. +// +// Usage: +// cargo run --release --example ubuntu /tmp/ubuntu/ + +use std::time::Duration; + +use anyhow::Context; +use librqbit::session::{AddTorrentOptions, AddTorrentResponse, Session}; +use tracing::info; + +// This is ubuntu-21.04-live-server-amd64.iso.torrent +// You can also pass filenames and URLs to add_torrent(). +const MAGNET_LINK: &str = "magnet:?xt=urn:btih:cab507494d02ebb1178b38f2e9d7be299c86b862"; + +#[tokio::main] +async fn main() -> Result<(), anyhow::Error> { + // Output logs to console. + tracing_subscriber::fmt::init(); + + let output_dir = std::env::args() + .nth(1) + .expect("the first argument should be the output directory"); + + // Create the session + let session = Session::new(output_dir.into(), Default::default()) + .await + .context("error creating session")?; + + // Add the torrent to the session + let handle = match session + .add_torrent( + MAGNET_LINK, + Some(AddTorrentOptions { + // Set this to true to allow writing on top of existing files. + // If the file is partially downloaded, librqbit will only download the + // missing pieces. + // + // Otherwise it will throw an error that the file exists. + overwrite: false, + ..Default::default() + }), + ) + .await + .context("error adding torrent")? + { + AddTorrentResponse::Added(handle) => handle, + // For a brand new session other variants won't happen. + _ => unreachable!(), + }; + + // Print stats periodically. + tokio::spawn({ + let handle = handle.clone(); + async move { + loop { + tokio::time::sleep(Duration::from_secs(1)).await; + let stats = handle.torrent_state().stats_snapshot(); + info!("stats: {stats:?}"); + } + } + }); + + // Wait until the download is completed + handle.wait_until_completed().await?; + info!("torrent downloaded"); + + Ok(()) +} diff --git a/crates/librqbit/src/session.rs b/crates/librqbit/src/session.rs index 6bc881b..8033572 100644 --- a/crates/librqbit/src/session.rs +++ b/crates/librqbit/src/session.rs @@ -251,7 +251,10 @@ impl Session { torrent_from_file(url)? }; let dht_rx = match self.dht.as_ref() { - Some(dht) => Some(dht.get_peers(torrent.info_hash).await?), + Some(dht) => { + debug!("reading peers for {:?} from DHT", torrent.info_hash); + Some(dht.get_peers(torrent.info_hash).await?) + } None => None, }; let trackers = torrent diff --git a/crates/librqbit/src/spawn_utils.rs b/crates/librqbit/src/spawn_utils.rs index 04b109b..e108254 100644 --- a/crates/librqbit/src/spawn_utils.rs +++ b/crates/librqbit/src/spawn_utils.rs @@ -38,3 +38,14 @@ impl BlockingSpawner { f() } } + +impl Default for BlockingSpawner { + fn default() -> Self { + let allow_block_in_place = match tokio::runtime::Handle::current().runtime_flavor() { + tokio::runtime::RuntimeFlavor::CurrentThread => false, + tokio::runtime::RuntimeFlavor::MultiThread => true, + _ => true, + }; + Self::new(allow_block_in_place) + } +} diff --git a/deadlock_6.txt b/deadlock_6.txt new file mode 100644 index 0000000..848032d --- /dev/null +++ b/deadlock_6.txt @@ -0,0 +1,450 @@ +(lldb) command script import "/Users/igor/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/etc/lldb_lookup.py" +(lldb) command source -s 0 '/Users/igor/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/etc/lldb_commands' +(lldb) type synthetic add -l lldb_lookup.synthetic_lookup -x ".*" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^(alloc::([a-z_]+::)+)String$" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^&(mut )?str$" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^&(mut )?\\[.+\\]$" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^(std::ffi::([a-z_]+::)+)OsString$" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^(alloc::([a-z_]+::)+)Vec<.+>$" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^(alloc::([a-z_]+::)+)VecDeque<.+>$" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^(alloc::([a-z_]+::)+)BTreeSet<.+>$" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^(alloc::([a-z_]+::)+)BTreeMap<.+>$" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^(std::collections::([a-z_]+::)+)HashMap<.+>$" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^(std::collections::([a-z_]+::)+)HashSet<.+>$" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^(alloc::([a-z_]+::)+)Rc<.+>$" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^(alloc::([a-z_]+::)+)Arc<.+>$" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^(core::([a-z_]+::)+)Cell<.+>$" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^(core::([a-z_]+::)+)Ref<.+>$" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^(core::([a-z_]+::)+)RefMut<.+>$" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^(core::([a-z_]+::)+)RefCell<.+>$" --category Rust +(lldb) type summary add -F lldb_lookup.summary_lookup -e -x -h "^core::num::([a-z_]+::)*NonZero.+$" --category Rust +(lldb) type category enable Rust +(lldb) process attach --pid 58189 +Process 58189 stopped +* thread #1, name = 'main', queue = 'com.apple.main-thread', stop reason = signal SIGSTOP + frame #0: 0x000000018c11c0ac libsystem_kernel.dylib`__psynch_cvwait + 8 +libsystem_kernel.dylib`: +-> 0x18c11c0ac <+8>: b.lo 0x18c11c0cc ; <+40> + 0x18c11c0b0 <+12>: pacibsp + 0x18c11c0b4 <+16>: stp x29, x30, [sp, #-0x10]! + 0x18c11c0b8 <+20>: mov x29, sp +Target 0: (ubuntu) stopped. +Executable module set to "/Users/igor/projects/2021-06-rust-qbittorrent/target/debug/examples/ubuntu". +Architecture set to: arm64-apple-macosx-. +(lldb) bt all +(lldb) thread backtrace all + thread #2, name = 'tokio-runtime-worker' + frame #0: 0x000000018c11c0ac libsystem_kernel.dylib`__psynch_cvwait + 8 + frame #1: 0x000000018c1595fc libsystem_pthread.dylib`_pthread_cond_wait + 1228 + frame #2: 0x000000010157ac94 ubuntu`_$LT$parking_lot_core..thread_parker..imp..ThreadParker$u20$as$u20$parking_lot_core..thread_parker..ThreadParkerT$GT$::park::h18f017ec19297713(self=0x000000012a80a1e8) at unix.rs:77:21 + frame #3: 0x000000010158015c ubuntu`parking_lot_core::parking_lot::park::_$u7b$$u7b$closure$u7d$$u7d$::hfa01ae81bb4bc0f2(thread_data=0x000000012a80a1e8) at parking_lot.rs:635:17 + frame #4: 0x000000010157f038 ubuntu`parking_lot_core::parking_lot::park::hacebd5119a4df3c1 at parking_lot.rs:207:5 + frame #5: 0x000000010157eff4 ubuntu`parking_lot_core::parking_lot::park::hacebd5119a4df3c1(key=105553151705104, validate={closure_env#0} @ 0x000000017075b5c0, before_sleep={closure_env#1} @ 0x000000017075b5d7, timed_out={closure_env#2} @ 0x000000017075b5d8, park_token=ParkToken @ 0x000000017075b578, timeout=Option @ 0x000000017075b580) at parking_lot.rs:600:5 + frame #6: 0x000000010157a404 ubuntu`parking_lot::raw_rwlock::RawRwLock::lock_common::ha8fc34a3cb806226(self=0x00006000021cc010, timeout=Option @ 0x000000017075b778, token=ParkToken @ 0x000000017075b788, try_lock={closure_env#0} @ 0x000000017075b6f8, validate_flags=12) at raw_rwlock.rs:1115:17 + frame #7: 0x00000001015ec5fc ubuntu`parking_lot::raw_rwlock::RawRwLock::lock_exclusive_slow::h7dc15f4d593b3d53(self=0x00006000021cc010, timeout=Option @ 0x000000017075b7d8) at raw_rwlock.rs:633:26 + frame #8: 0x0000000100e5b470 ubuntu`_$LT$parking_lot..raw_rwlock..RawRwLock$u20$as$u20$lock_api..rwlock..RawRwLock$GT$::lock_exclusive::h5270fe9f3619f0de(self=0x00006000021cc010) at raw_rwlock.rs:73:26 + frame #9: 0x0000000100e687f0 ubuntu`lock_api::rwlock::RwLock$LT$R$C$T$GT$::write::haa255ee1570efc80(self=0x00006000021cc010) at rwlock.rs:491:9 + frame #10: 0x0000000100f2a01c ubuntu`librqbit::torrent_state::TorrentState::lock_write::_$u7b$$u7b$closure$u7d$$u7d$::h2321908ec997b34a at torrent_state.rs:527:47 + frame #11: 0x0000000100f17a88 ubuntu`librqbit::torrent_state::TorrentState::lock_write::h9d38ed3237018f3a [inlined] librqbit::torrent_state::timed_existence::timeit::ha8a3d4926cb7dc8f(_n="mark_chunk_downloaded", f={closure_env#0} @ 0x000000017075b908) at torrent_state.rs:320:9 + frame #12: 0x0000000100f17a84 ubuntu`librqbit::torrent_state::TorrentState::lock_write::h9d38ed3237018f3a(self=0x000000012ac04ea0, reason="mark_chunk_downloaded") at torrent_state.rs:527:29 + frame #13: 0x0000000100f246e0 ubuntu`librqbit::torrent_state::PeerHandler::on_received_piece::hfc76de485b1e69e4(self=0x000000012b819690, handle=SocketAddr @ 0x000000017075cb00, piece=Piece @ 0x000000017075cae0) at torrent_state.rs:1217:25 + frame #14: 0x0000000100f1ed9c ubuntu`_$LT$librqbit..torrent_state..PeerHandler$u20$as$u20$librqbit..peer_connection..PeerConnectionHandler$GT$::on_received_message::hcc2c1a998973e6ea(self=0x000000012b819690, message=Message @ 0x000000017075e308) at torrent_state.rs:860:38 + frame #15: 0x0000000100ec903c ubuntu`librqbit::peer_connection::PeerConnection$LT$H$GT$::manage_peer::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hd19286c0558488e9((null)=0x00000001707659c0) at peer_connection.rs:270:17 + frame #16: 0x0000000100eca618 ubuntu`librqbit::peer_connection::PeerConnection$LT$H$GT$::manage_peer::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hdf7259baa4ab1268(cx=0x00000001707659c0) at select.rs:524:49 + frame #17: 0x0000000100e5dac4 ubuntu`_$LT$tokio..future..poll_fn..PollFn$LT$F$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h598619c9121a1021(self=Pin<&mut tokio::future::poll_fn::PollFn>> @ 0x000000017075e790, cx=0x00000001707659c0) at poll_fn.rs:58:9 + frame #18: 0x0000000100ec62f4 ubuntu`librqbit::peer_connection::PeerConnection$LT$H$GT$::manage_peer::_$u7b$$u7b$closure$u7d$$u7d$::hbde87e7c4a75cde5((null)=0x00000001707659c0) at peer_connection.rs:285:17 + frame #19: 0x0000000100f285a0 ubuntu`librqbit::torrent_state::TorrentState::task_manage_peer::_$u7b$$u7b$closure$u7d$$u7d$::hea04718635b021e0((null)=0x00000001707659c0) at torrent_state.rs:462:51 + frame #20: 0x0000000100eb6a58 ubuntu`librqbit::spawn_utils::spawn::_$u7b$$u7b$closure$u7d$$u7d$::h22a15ea7de950e84((null)=0x00000001707659c0) at spawn_utils.rs:9:19 + frame #21: 0x0000000100f37ad4 ubuntu`_$LT$tracing..instrument..Instrumented$LT$T$GT$$u20$as$u20$core..future..future..Future$GT$::poll::hf306b1b8f8b746ec(self=Pin<&mut tracing::instrument::Instrumented>> @ 0x00000001707657b0, cx=0x00000001707659c0) at instrument.rs:321:9 + frame #22: 0x0000000100e5c764 ubuntu`_$LT$core..pin..Pin$LT$P$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h75c2f3181b0cf1aa(self=Pin<&mut core::pin::Pin>, alloc::alloc::Global>>> @ 0x00000001707658b8, cx=0x00000001707659c0) at future.rs:125:9 + frame #23: 0x0000000100ea616c ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$::h5e7de2bf5eee2830(ptr=0x000000012ac046b0) at core.rs:328:17 + frame #24: 0x0000000100ea4ef4 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::hc59bc6d6b6e00c95 [inlined] tokio::loom::std::unsafe_cell::UnsafeCell$LT$T$GT$::with_mut::h6f1eac3b5cc2f9fc(self=0x000000012ac046b0, f={closure_env#0}>, alloc::alloc::Global>>, alloc::sync::Arc> @ 0x00000001707659f8) at unsafe_cell.rs:16:9 + frame #25: 0x0000000100ea4ee8 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::hc59bc6d6b6e00c95(self=0x000000012ac046a0, cx=Context @ 0x00000001707659c0) at core.rs:317:13 + frame #26: 0x0000000100f46a7c ubuntu`tokio::runtime::task::harness::poll_future::_$u7b$$u7b$closure$u7d$$u7d$::h1ac58a34f257fa4e at harness.rs:485:19 + frame #27: 0x0000000100ecf5a8 ubuntu`_$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h65267074a1338221(self=AssertUnwindSafe>, alloc::alloc::Global>>, alloc::sync::Arc>> @ 0x0000000170765a70, (null)=) at unwind_safe.rs:272:9 + frame #28: 0x0000000100e75468 ubuntu`std::panicking::try::do_call::ha519f6d3905eb2d3(data="\xa0F\xc0*\U00000001") at panicking.rs:552:40 + frame #29: 0x0000000100e72540 ubuntu`std::panicking::try::hf6253d263edac0a7(f=AssertUnwindSafe>, alloc::alloc::Global>>, alloc::sync::Arc>> @ 0x0000000170765b20) at panicking.rs:516:19 + frame #30: 0x0000000100ed36a8 ubuntu`std::panic::catch_unwind::h5882a801edf9c0d0(f=AssertUnwindSafe>, alloc::alloc::Global>>, alloc::sync::Arc>> @ 0x0000000170765b60) at panic.rs:142:14 + frame #31: 0x0000000100f45c10 ubuntu`tokio::runtime::task::harness::poll_future::hd86755375ddf0d4a(core=0x000000012ac046a0, cx=Context @ 0x0000000170765c70) at harness.rs:473:18 + frame #32: 0x0000000100f48b9c ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll_inner::h37fc87829deea2a7(self=0x0000000170765d28) at harness.rs:208:27 + frame #33: 0x0000000100f50188 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll::h7332793119460ed4(self=Harness>, alloc::alloc::Global>>, alloc::sync::Arc> @ 0x0000000170765d28) at harness.rs:153:15 + frame #34: 0x0000000100f0f104 ubuntu`tokio::runtime::task::raw::poll::h51db310fbcdeebd3(ptr=NonNull @ 0x0000000170765d50) at raw.rs:271:5 + frame #35: 0x0000000101477900 ubuntu`tokio::runtime::task::raw::RawTask::poll::h1000d6912ad57420(self=RawTask @ 0x0000000170765d70) at raw.rs:201:18 + frame #36: 0x0000000101463ba8 ubuntu`tokio::runtime::task::LocalNotified$LT$S$GT$::run::h614d754e09832cad(self=LocalNotified> @ 0x0000000170765da0) at mod.rs:408:9 + frame #37: 0x0000000101491e18 ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::_$u7b$$u7b$closure$u7d$$u7d$::ha7f5ee623f6de024 at worker.rs:577:13 + frame #38: 0x0000000101491ddc ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h3a91c4bdfa345831 at coop.rs:107:5 + frame #39: 0x0000000101491dac ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h3a91c4bdfa345831 [inlined] tokio::runtime::coop::budget::h8d1d2f494ba6a7cb(f={closure_env#0} @ 0x0000000170765f30) at coop.rs:73:5 + frame #40: 0x0000000101491d88 ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h3a91c4bdfa345831(self=0x0000000170766260, task=Notified> @ 0x0000000170765f20, core=0x00006000039cc280) at worker.rs:576:9 + frame #41: 0x0000000101491a84 ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run::heaa445e39d3099a1(self=0x0000000170766260, core=0x00006000039cc280) at worker.rs:526:24 + frame #42: 0x0000000101491894 ubuntu`tokio::runtime::scheduler::multi_thread::worker::run::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h2b571f29a8f60888 at worker.rs:491:21 + frame #43: 0x0000000101483090 ubuntu`tokio::runtime::context::scoped::Scoped$LT$T$GT$::set::hf925c595bd252f01(self=0x000000012a80a038, t=0x0000000170766258, f={closure_env#0} @ 0x00000001707660e8) at scoped.rs:40:9 + frame #44: 0x000000010144c988 ubuntu`tokio::runtime::context::set_scheduler::_$u7b$$u7b$closure$u7d$$u7d$::h0302d095e8b65143(c=0x000000012a80a000) at context.rs:176:26 + frame #45: 0x000000010147ffa0 ubuntu`std::thread::local::LocalKey$LT$T$GT$::try_with::h6fb83be6e86818c6(self=0x0000000101766de8, f={closure_env#0}<(), tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure_env#0}> @ 0x00000001707661f0) at local.rs:270:16 + frame #46: 0x000000010147eca4 ubuntu`std::thread::local::LocalKey$LT$T$GT$::with::h5dcf9435a259397f(self=0x0000000101766de8, f=) at local.rs:246:9 + frame #47: 0x000000010144c954 ubuntu`tokio::runtime::context::set_scheduler::h6b6f06a5ae3a93e1(v=0x0000000170766258, f={closure_env#0} @ 0x0000000170766210) at context.rs:176:9 + frame #48: 0x0000000101491848 ubuntu`tokio::runtime::scheduler::multi_thread::worker::run::_$u7b$$u7b$closure$u7d$$u7d$::hf0230b52cc3b88d3((null)=0x00000001707663c0) at worker.rs:486:9 + frame #49: 0x000000010145d464 ubuntu`tokio::runtime::context::runtime::enter_runtime::h7a46156447e47d54(handle=0x0000000170766458, allow_block_in_place=true, f={closure_env#0} @ 0x0000000170766400) at runtime.rs:65:16 + frame #50: 0x000000010149172c ubuntu`tokio::runtime::scheduler::multi_thread::worker::run::h4cf7d8d53344654d(worker=strong=1, weak=0) at worker.rs:478:5 + frame #51: 0x0000000100f165f0 ubuntu`tokio::runtime::scheduler::multi_thread::worker::block_in_place::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hdcd0200f1ace3c10 at worker.rs:422:41 + frame #52: 0x0000000100ee9704 ubuntu`_$LT$tokio..runtime..blocking..task..BlockingTask$LT$T$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h5e51c8253a97db96(self=Pin<&mut tokio::runtime::blocking::task::BlockingTask>>> @ 0x00000001707664b8, _cx=0x00000001707665c0) at task.rs:42:21 + frame #53: 0x0000000100ea6efc ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$::hb7e35a417059b0ad(ptr=0x000000012a9052a8) at core.rs:328:17 + frame #54: 0x0000000100ea50b0 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::hd59079f2084d2a5c [inlined] tokio::loom::std::unsafe_cell::UnsafeCell$LT$T$GT$::with_mut::hd64ff7d14075f21c(self=0x000000012a9052a8, f={closure_env#0}>>, tokio::runtime::blocking::schedule::BlockingSchedule> @ 0x00000001707665f8) at unsafe_cell.rs:16:9 + frame #55: 0x0000000100ea50a4 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::hd59079f2084d2a5c(self=0x000000012a9052a0, cx=Context @ 0x00000001707665c0) at core.rs:317:13 + frame #56: 0x0000000100f4772c ubuntu`tokio::runtime::task::harness::poll_future::_$u7b$$u7b$closure$u7d$$u7d$::hb5f6e8c09d369fd1 at harness.rs:485:19 + frame #57: 0x0000000100ed04b0 ubuntu`_$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::he3ee8a4cae328095(self=AssertUnwindSafe>>, tokio::runtime::blocking::schedule::BlockingSchedule>> @ 0x0000000170766670, (null)=) at unwind_safe.rs:272:9 + frame #58: 0x0000000100e73aec ubuntu`std::panicking::try::do_call::h489a70e89d3ca1b6(data="\xa0R\x90*\U00000001") at panicking.rs:552:40 + frame #59: 0x0000000100e6e638 ubuntu`std::panicking::try::h5e0d069f0af730a8(f=AssertUnwindSafe>>, tokio::runtime::blocking::schedule::BlockingSchedule>> @ 0x0000000170766720) at panicking.rs:516:19 + frame #60: 0x0000000100ed34a8 ubuntu`std::panic::catch_unwind::h4669e6cae3323c93(f=AssertUnwindSafe>>, tokio::runtime::blocking::schedule::BlockingSchedule>> @ 0x0000000170766760) at panic.rs:142:14 + frame #61: 0x0000000100f442e8 ubuntu`tokio::runtime::task::harness::poll_future::h7d428e00030d2cfa(core=0x000000012a9052a0, cx=Context @ 0x0000000170766870) at harness.rs:473:18 + frame #62: 0x0000000100f49700 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll_inner::h6b3fcd463fc98a43(self=0x0000000170766928) at harness.rs:208:27 + frame #63: 0x0000000100f4fa50 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll::h34abb3e8b9684af7(self=Harness>>, tokio::runtime::blocking::schedule::BlockingSchedule> @ 0x0000000170766928) at harness.rs:153:15 + frame #64: 0x0000000100f0ef84 ubuntu`tokio::runtime::task::raw::poll::h30cae272b2c909e0(ptr=NonNull @ 0x0000000170766950) at raw.rs:271:5 + frame #65: 0x0000000101477900 ubuntu`tokio::runtime::task::raw::RawTask::poll::h1000d6912ad57420(self=RawTask @ 0x0000000170766970) at raw.rs:201:18 + frame #66: 0x0000000101463c2c ubuntu`tokio::runtime::task::UnownedTask$LT$S$GT$::run::hfc4dd67afb1a17b6(self=UnownedTask @ 0x00000001707669a0) at mod.rs:445:9 + frame #67: 0x000000010146ff54 ubuntu`tokio::runtime::blocking::pool::Task::run::hf0982e055b4d9b3d(self=Task @ 0x00000001707669c0) at pool.rs:159:9 + frame #68: 0x0000000101471428 ubuntu`tokio::runtime::blocking::pool::Inner::run::h613e034fcd5273c1(self=0x0000000129e052e0, worker_thread_id=10) at pool.rs:513:17 + frame #69: 0x00000001014712ac ubuntu`tokio::runtime::blocking::pool::Spawner::spawn_thread::_$u7b$$u7b$closure$u7d$$u7d$::h85055799f1079122 at pool.rs:471:13 + frame #70: 0x0000000101450fb0 ubuntu`std::sys_common::backtrace::__rust_begin_short_backtrace::hc00264b51514bc2a(f=) at backtrace.rs:154:18 + frame #71: 0x0000000101445cdc ubuntu`std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hf0c597d86743f4b0 at mod.rs:529:17 + frame #72: 0x00000001014a09f0 ubuntu`_$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h8e1e63be06f0c84a(self=, (null)=) at unwind_safe.rs:272:9 + frame #73: 0x0000000101456584 ubuntu`std::panicking::try::do_call::hce3444c785deac15(data="\U00000001") at panicking.rs:552:40 + frame #74: 0x0000000101455bb4 ubuntu`std::panicking::try::hdf0c5aa4f459a133(f=) at panicking.rs:516:19 + frame #75: 0x0000000101445c08 ubuntu`std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::h3869e60e8161d6b6 at panic.rs:142:14 + frame #76: 0x0000000101445c04 ubuntu`std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::h3869e60e8161d6b6 at mod.rs:528:30 + frame #77: 0x0000000101446144 ubuntu`core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h079508b8f3dc0adc((null)=0x0000600000fccf80, (null)=) at function.rs:250:5 + frame #78: 0x00000001015b7334 ubuntu`std::sys::unix::thread::Thread::new::thread_start::hc8d37e25d4657683 [inlined] _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::ha50e0d33beaa94b5 at boxed.rs:2007:9 [opt] + frame #79: 0x00000001015b7328 ubuntu`std::sys::unix::thread::Thread::new::thread_start::hc8d37e25d4657683 [inlined] _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::h320b0db4bb8e0440 at boxed.rs:2007:9 [opt] + frame #80: 0x00000001015b7324 ubuntu`std::sys::unix::thread::Thread::new::thread_start::hc8d37e25d4657683 at thread.rs:108:17 [opt] + frame #81: 0x000000018c159034 libsystem_pthread.dylib`_pthread_start + 136 + thread #3, name = 'tokio-runtime-worker' + frame #0: 0x000000018c11c0ac libsystem_kernel.dylib`__psynch_cvwait + 8 + frame #1: 0x000000018c1595fc libsystem_pthread.dylib`_pthread_cond_wait + 1228 + frame #2: 0x0000000101124828 ubuntu`_$LT$parking_lot_core..thread_parker..imp..ThreadParker$u20$as$u20$parking_lot_core..thread_parker..ThreadParkerT$GT$::park::h81c3633b1efcc0d3(self=0x0000000129e0eb68) at unix.rs:77:21 + frame #3: 0x0000000101125fd8 ubuntu`parking_lot_core::parking_lot::park::_$u7b$$u7b$closure$u7d$$u7d$::h86031eb220440ab6(thread_data=0x0000000129e0eb68) at parking_lot.rs:635:17 + frame #4: 0x00000001011258b0 ubuntu`parking_lot_core::parking_lot::park::hf4b3e8965b659760 at parking_lot.rs:207:5 + frame #5: 0x000000010112586c ubuntu`parking_lot_core::parking_lot::park::hf4b3e8965b659760(key=5024852649, validate={closure_env#0} @ 0x0000000170d87b30, before_sleep={closure_env#1} @ 0x0000000170d87b3e, timed_out={closure_env#2} @ 0x0000000170d87b3f, park_token=ParkToken @ 0x0000000170d87af8, timeout=Option @ 0x0000000170d87b00) at parking_lot.rs:600:5 + frame #6: 0x00000001015e2a10 ubuntu`dashmap::lock::RawRwLock::lock_shared_slow::h334165b2f5c9384b(self=0x000000012b812aa8) at lock.rs:270:21 + frame #7: 0x0000000100e41588 ubuntu`_$LT$dashmap..lock..RawRwLock$u20$as$u20$lock_api..rwlock..RawRwLock$GT$::lock_shared::h5de6b0427458a49d(self=0x000000012b812aa8) at lock.rs:62:13 + frame #8: 0x0000000100e68760 ubuntu`lock_api::rwlock::RwLock$LT$R$C$T$GT$::read::h608658d5ac4b6a2d(self=0x000000012b812aa8) at rwlock.rs:459:9 + frame #9: 0x0000000100e516e0 ubuntu`_$LT$dashmap..DashMap$LT$K$C$V$C$S$GT$$u20$as$u20$dashmap..t..Map$LT$K$C$V$C$S$GT$$GT$::_yield_read_shard::h84bc69d2d64a0791(self=0x000000012ac04f38, i=3) at lib.rs:891:9 + frame #10: 0x0000000100f16ba0 ubuntu`_$LT$dashmap..iter..Iter$LT$K$C$V$C$S$C$M$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::hb1e9fda45c3f5907(self=0x0000000170d88170) at iter.rs:174:34 + frame #11: 0x0000000100f16884 ubuntu`core::iter::traits::iterator::Iterator::fold::hb050bd376eb4851a(self=Iter> @ 0x0000000170d88170, init=, f={closure_env#0} @ 0x0000000170d88007) at iterator.rs:2639:29 + frame #12: 0x0000000100f25db8 ubuntu`librqbit::torrent_state::PeerStates::stats::_$u7b$$u7b$closure$u7d$$u7d$::hd59e6c38ca10527f at torrent_state.rs:83:13 + frame #13: 0x0000000100f16cd0 ubuntu`librqbit::torrent_state::PeerStates::stats::h19c78f686fc82ec4 [inlined] librqbit::torrent_state::timed_existence::timeit::he9134af8f822c0db(_n="PeerStates::stats", f={closure_env#0} @ 0x0000000170d88218) at torrent_state.rs:320:9 + frame #14: 0x0000000100f16ccc ubuntu`librqbit::torrent_state::PeerStates::stats::h19c78f686fc82ec4(self=0x000000012ac04f38) at torrent_state.rs:82:9 + frame #15: 0x0000000100f1e854 ubuntu`librqbit::torrent_state::TorrentState::stats_snapshot::hd1d23431a2423ac4(self=0x000000012ac04ea0) at torrent_state.rs:814:26 + frame #16: 0x0000000100e4c4fc ubuntu`librqbit::torrent_manager::TorrentManager::start::_$u7b$$u7b$closure$u7d$$u7d$::h62a7502cf005da13((null)=0x0000000170d899c0) at torrent_manager.rs:297:33 + frame #17: 0x0000000100ebc734 ubuntu`librqbit::spawn_utils::spawn::_$u7b$$u7b$closure$u7d$$u7d$::hbdaad5f0a4164a94((null)=0x0000000170d899c0) at spawn_utils.rs:9:19 + frame #18: 0x0000000100f37184 ubuntu`_$LT$tracing..instrument..Instrumented$LT$T$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h42823f57e36e7cf3(self=Pin<&mut tracing::instrument::Instrumented>>> @ 0x0000000170d897f0, cx=0x0000000170d899c0) at instrument.rs:321:9 + frame #19: 0x0000000100ea654c ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$::h678c6d0f8a67cc6f(ptr=0x000000012ac05330) at core.rs:328:17 + frame #20: 0x0000000100ea4f88 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::hc89ae778a2e35e40 [inlined] tokio::loom::std::unsafe_cell::UnsafeCell$LT$T$GT$::with_mut::h593c2072a3a046ed(self=0x000000012ac05330, f={closure_env#0}>>, alloc::sync::Arc> @ 0x0000000170d899f8) at unsafe_cell.rs:16:9 + frame #21: 0x0000000100ea4f7c ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::hc89ae778a2e35e40(self=0x000000012ac05320, cx=Context @ 0x0000000170d899c0) at core.rs:317:13 + frame #22: 0x0000000100f46ce4 ubuntu`tokio::runtime::task::harness::poll_future::_$u7b$$u7b$closure$u7d$$u7d$::h435df6023246cf3b at harness.rs:485:19 + frame #23: 0x0000000100ecff14 ubuntu`_$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::hc4ec710da91a1c38(self=AssertUnwindSafe>>, alloc::sync::Arc>> @ 0x0000000170d89a70, (null)=) at unwind_safe.rs:272:9 + frame #24: 0x0000000100e74588 ubuntu`std::panicking::try::do_call::h745f369d74749300(data=" S\xc0*\U00000001") at panicking.rs:552:40 + frame #25: 0x0000000100e6cc08 ubuntu`std::panicking::try::h1becb456d9205ba9(f=AssertUnwindSafe>>, alloc::sync::Arc>> @ 0x0000000170d89b20) at panicking.rs:516:19 + frame #26: 0x0000000100ed4174 ubuntu`std::panic::catch_unwind::hc60f07b69988dbe8(f=AssertUnwindSafe>>, alloc::sync::Arc>> @ 0x0000000170d89b60) at panic.rs:142:14 + frame #27: 0x0000000100f46340 ubuntu`tokio::runtime::task::harness::poll_future::hf4a5b35eda817472(core=0x000000012ac05320, cx=Context @ 0x0000000170d89c70) at harness.rs:473:18 + frame #28: 0x0000000100f4a8b8 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll_inner::hc08f3c0aa1b326b2(self=0x0000000170d89d28) at harness.rs:208:27 + frame #29: 0x0000000100f50770 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll::hb7cc37e070326c7e(self=Harness>>, alloc::sync::Arc> @ 0x0000000170d89d28) at harness.rs:153:15 + frame #30: 0x0000000100f0f044 ubuntu`tokio::runtime::task::raw::poll::h3f6472418aa31498(ptr=NonNull @ 0x0000000170d89d50) at raw.rs:271:5 + frame #31: 0x0000000101477900 ubuntu`tokio::runtime::task::raw::RawTask::poll::h1000d6912ad57420(self=RawTask @ 0x0000000170d89d70) at raw.rs:201:18 + frame #32: 0x0000000101463ba8 ubuntu`tokio::runtime::task::LocalNotified$LT$S$GT$::run::h614d754e09832cad(self=LocalNotified> @ 0x0000000170d89da0) at mod.rs:408:9 + frame #33: 0x0000000101491e18 ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::_$u7b$$u7b$closure$u7d$$u7d$::ha7f5ee623f6de024 at worker.rs:577:13 + frame #34: 0x0000000101491ddc ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h3a91c4bdfa345831 at coop.rs:107:5 + frame #35: 0x0000000101491dac ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h3a91c4bdfa345831 [inlined] tokio::runtime::coop::budget::h8d1d2f494ba6a7cb(f={closure_env#0} @ 0x0000000170d89f30) at coop.rs:73:5 + frame #36: 0x0000000101491d88 ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h3a91c4bdfa345831(self=0x0000000170d8a260, task=Notified> @ 0x0000000170d89f20, core=0x00006000039cc2d0) at worker.rs:576:9 + frame #37: 0x0000000101491a84 ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run::heaa445e39d3099a1(self=0x0000000170d8a260, core=0x00006000039cc2d0) at worker.rs:526:24 + frame #38: 0x0000000101491894 ubuntu`tokio::runtime::scheduler::multi_thread::worker::run::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h2b571f29a8f60888 at worker.rs:491:21 + frame #39: 0x0000000101483090 ubuntu`tokio::runtime::context::scoped::Scoped$LT$T$GT$::set::hf925c595bd252f01(self=0x0000000129e0e9b8, t=0x0000000170d8a258, f={closure_env#0} @ 0x0000000170d8a0e8) at scoped.rs:40:9 + frame #40: 0x000000010144c988 ubuntu`tokio::runtime::context::set_scheduler::_$u7b$$u7b$closure$u7d$$u7d$::h0302d095e8b65143(c=0x0000000129e0e980) at context.rs:176:26 + frame #41: 0x000000010147ffa0 ubuntu`std::thread::local::LocalKey$LT$T$GT$::try_with::h6fb83be6e86818c6(self=0x0000000101766de8, f={closure_env#0}<(), tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure_env#0}> @ 0x0000000170d8a1f0) at local.rs:270:16 + frame #42: 0x000000010147eca4 ubuntu`std::thread::local::LocalKey$LT$T$GT$::with::h5dcf9435a259397f(self=0x0000000101766de8, f=) at local.rs:246:9 + frame #43: 0x000000010144c954 ubuntu`tokio::runtime::context::set_scheduler::h6b6f06a5ae3a93e1(v=0x0000000170d8a258, f={closure_env#0} @ 0x0000000170d8a210) at context.rs:176:9 + frame #44: 0x0000000101491848 ubuntu`tokio::runtime::scheduler::multi_thread::worker::run::_$u7b$$u7b$closure$u7d$$u7d$::hf0230b52cc3b88d3((null)=0x0000000170d8a3c0) at worker.rs:486:9 + frame #45: 0x000000010145d464 ubuntu`tokio::runtime::context::runtime::enter_runtime::h7a46156447e47d54(handle=0x0000000170d8a458, allow_block_in_place=true, f={closure_env#0} @ 0x0000000170d8a400) at runtime.rs:65:16 + frame #46: 0x000000010149172c ubuntu`tokio::runtime::scheduler::multi_thread::worker::run::h4cf7d8d53344654d(worker=strong=2, weak=0) at worker.rs:478:5 + frame #47: 0x0000000100f165f0 ubuntu`tokio::runtime::scheduler::multi_thread::worker::block_in_place::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hdcd0200f1ace3c10 at worker.rs:422:41 + frame #48: 0x0000000100ee9704 ubuntu`_$LT$tokio..runtime..blocking..task..BlockingTask$LT$T$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h5e51c8253a97db96(self=Pin<&mut tokio::runtime::blocking::task::BlockingTask>>> @ 0x0000000170d8a4b8, _cx=0x0000000170d8a5c0) at task.rs:42:21 + frame #49: 0x0000000100ea6efc ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$::hb7e35a417059b0ad(ptr=0x0000000129e0cb28) at core.rs:328:17 + frame #50: 0x0000000100ea50b0 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::hd59079f2084d2a5c [inlined] tokio::loom::std::unsafe_cell::UnsafeCell$LT$T$GT$::with_mut::hd64ff7d14075f21c(self=0x0000000129e0cb28, f={closure_env#0}>>, tokio::runtime::blocking::schedule::BlockingSchedule> @ 0x0000000170d8a5f8) at unsafe_cell.rs:16:9 + frame #51: 0x0000000100ea50a4 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::hd59079f2084d2a5c(self=0x0000000129e0cb20, cx=Context @ 0x0000000170d8a5c0) at core.rs:317:13 + frame #52: 0x0000000100f4772c ubuntu`tokio::runtime::task::harness::poll_future::_$u7b$$u7b$closure$u7d$$u7d$::hb5f6e8c09d369fd1 at harness.rs:485:19 + frame #53: 0x0000000100ed04b0 ubuntu`_$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::he3ee8a4cae328095(self=AssertUnwindSafe>>, tokio::runtime::blocking::schedule::BlockingSchedule>> @ 0x0000000170d8a670, (null)=) at unwind_safe.rs:272:9 + frame #54: 0x0000000100e73aec ubuntu`std::panicking::try::do_call::h489a70e89d3ca1b6(data=" \xcb\xe0)\U00000001") at panicking.rs:552:40 + frame #55: 0x0000000100e6e638 ubuntu`std::panicking::try::h5e0d069f0af730a8(f=AssertUnwindSafe>>, tokio::runtime::blocking::schedule::BlockingSchedule>> @ 0x0000000170d8a720) at panicking.rs:516:19 + frame #56: 0x0000000100ed34a8 ubuntu`std::panic::catch_unwind::h4669e6cae3323c93(f=AssertUnwindSafe>>, tokio::runtime::blocking::schedule::BlockingSchedule>> @ 0x0000000170d8a760) at panic.rs:142:14 + frame #57: 0x0000000100f442e8 ubuntu`tokio::runtime::task::harness::poll_future::h7d428e00030d2cfa(core=0x0000000129e0cb20, cx=Context @ 0x0000000170d8a870) at harness.rs:473:18 + frame #58: 0x0000000100f49700 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll_inner::h6b3fcd463fc98a43(self=0x0000000170d8a928) at harness.rs:208:27 + frame #59: 0x0000000100f4fa50 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll::h34abb3e8b9684af7(self=Harness>>, tokio::runtime::blocking::schedule::BlockingSchedule> @ 0x0000000170d8a928) at harness.rs:153:15 + frame #60: 0x0000000100f0ef84 ubuntu`tokio::runtime::task::raw::poll::h30cae272b2c909e0(ptr=NonNull @ 0x0000000170d8a950) at raw.rs:271:5 + frame #61: 0x0000000101477900 ubuntu`tokio::runtime::task::raw::RawTask::poll::h1000d6912ad57420(self=RawTask @ 0x0000000170d8a970) at raw.rs:201:18 + frame #62: 0x0000000101463c2c ubuntu`tokio::runtime::task::UnownedTask$LT$S$GT$::run::hfc4dd67afb1a17b6(self=UnownedTask @ 0x0000000170d8a9a0) at mod.rs:445:9 + frame #63: 0x000000010146ff54 ubuntu`tokio::runtime::blocking::pool::Task::run::hf0982e055b4d9b3d(self=Task @ 0x0000000170d8a9c0) at pool.rs:159:9 + frame #64: 0x0000000101471428 ubuntu`tokio::runtime::blocking::pool::Inner::run::h613e034fcd5273c1(self=0x0000000129e052e0, worker_thread_id=13) at pool.rs:513:17 + frame #65: 0x00000001014712ac ubuntu`tokio::runtime::blocking::pool::Spawner::spawn_thread::_$u7b$$u7b$closure$u7d$$u7d$::h85055799f1079122 at pool.rs:471:13 + frame #66: 0x0000000101450fb0 ubuntu`std::sys_common::backtrace::__rust_begin_short_backtrace::hc00264b51514bc2a(f=) at backtrace.rs:154:18 + frame #67: 0x0000000101445cdc ubuntu`std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hf0c597d86743f4b0 at mod.rs:529:17 + frame #68: 0x00000001014a09f0 ubuntu`_$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h8e1e63be06f0c84a(self=, (null)=) at unwind_safe.rs:272:9 + frame #69: 0x0000000101456584 ubuntu`std::panicking::try::do_call::hce3444c785deac15(data="\U00000001") at panicking.rs:552:40 + frame #70: 0x0000000101455bb4 ubuntu`std::panicking::try::hdf0c5aa4f459a133(f=) at panicking.rs:516:19 + frame #71: 0x0000000101445c08 ubuntu`std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::h3869e60e8161d6b6 at panic.rs:142:14 + frame #72: 0x0000000101445c04 ubuntu`std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::h3869e60e8161d6b6 at mod.rs:528:30 + frame #73: 0x0000000101446144 ubuntu`core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h079508b8f3dc0adc((null)=0x0000600000fccd40, (null)=) at function.rs:250:5 + frame #74: 0x00000001015b7334 ubuntu`std::sys::unix::thread::Thread::new::thread_start::hc8d37e25d4657683 [inlined] _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::ha50e0d33beaa94b5 at boxed.rs:2007:9 [opt] + frame #75: 0x00000001015b7328 ubuntu`std::sys::unix::thread::Thread::new::thread_start::hc8d37e25d4657683 [inlined] _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::h320b0db4bb8e0440 at boxed.rs:2007:9 [opt] + frame #76: 0x00000001015b7324 ubuntu`std::sys::unix::thread::Thread::new::thread_start::hc8d37e25d4657683 at thread.rs:108:17 [opt] + frame #77: 0x000000018c159034 libsystem_pthread.dylib`_pthread_start + 136 + thread #6, name = 'tokio-runtime-worker' + frame #0: 0x000000018c11c0ac libsystem_kernel.dylib`__psynch_cvwait + 8 + frame #1: 0x000000018c1595fc libsystem_pthread.dylib`_pthread_cond_wait + 1228 + frame #2: 0x000000010157ac94 ubuntu`_$LT$parking_lot_core..thread_parker..imp..ThreadParker$u20$as$u20$parking_lot_core..thread_parker..ThreadParkerT$GT$::park::h18f017ec19297713(self=0x000000012a90ac68) at unix.rs:77:21 + frame #3: 0x000000010158015c ubuntu`parking_lot_core::parking_lot::park::_$u7b$$u7b$closure$u7d$$u7d$::hfa01ae81bb4bc0f2(thread_data=0x000000012a90ac68) at parking_lot.rs:635:17 + frame #4: 0x000000010157f038 ubuntu`parking_lot_core::parking_lot::park::hacebd5119a4df3c1 at parking_lot.rs:207:5 + frame #5: 0x000000010157eff4 ubuntu`parking_lot_core::parking_lot::park::hacebd5119a4df3c1(key=105553151705104, validate={closure_env#0} @ 0x00000001713a85b0, before_sleep={closure_env#1} @ 0x00000001713a85c7, timed_out={closure_env#2} @ 0x00000001713a85c8, park_token=ParkToken @ 0x00000001713a8568, timeout=Option @ 0x00000001713a8570) at parking_lot.rs:600:5 + frame #6: 0x000000010157a404 ubuntu`parking_lot::raw_rwlock::RawRwLock::lock_common::ha8fc34a3cb806226(self=0x00006000021cc010, timeout=Option @ 0x00000001713a8768, token=ParkToken @ 0x00000001713a8778, try_lock={closure_env#0} @ 0x00000001713a86e8, validate_flags=12) at raw_rwlock.rs:1115:17 + frame #7: 0x00000001015ec5fc ubuntu`parking_lot::raw_rwlock::RawRwLock::lock_exclusive_slow::h7dc15f4d593b3d53(self=0x00006000021cc010, timeout=Option @ 0x00000001713a87c8) at raw_rwlock.rs:633:26 + frame #8: 0x0000000100e5b470 ubuntu`_$LT$parking_lot..raw_rwlock..RawRwLock$u20$as$u20$lock_api..rwlock..RawRwLock$GT$::lock_exclusive::h5270fe9f3619f0de(self=0x00006000021cc010) at raw_rwlock.rs:73:26 + frame #9: 0x0000000100e687f0 ubuntu`lock_api::rwlock::RwLock$LT$R$C$T$GT$::write::haa255ee1570efc80(self=0x00006000021cc010) at rwlock.rs:491:9 + frame #10: 0x0000000100f2a01c ubuntu`librqbit::torrent_state::TorrentState::lock_write::_$u7b$$u7b$closure$u7d$$u7d$::h2321908ec997b34a at torrent_state.rs:527:47 + frame #11: 0x0000000100f17a88 ubuntu`librqbit::torrent_state::TorrentState::lock_write::h9d38ed3237018f3a [inlined] librqbit::torrent_state::timed_existence::timeit::ha8a3d4926cb7dc8f(_n="reserve_next_needed_piece", f={closure_env#0} @ 0x00000001713a88f8) at torrent_state.rs:320:9 + frame #12: 0x0000000100f17a84 ubuntu`librqbit::torrent_state::TorrentState::lock_write::h9d38ed3237018f3a(self=0x000000012ac04ea0, reason="reserve_next_needed_piece") at torrent_state.rs:527:29 + frame #13: 0x0000000100f2a28c ubuntu`librqbit::torrent_state::TorrentState::reserve_next_needed_piece::_$u7b$$u7b$closure$u7d$$u7d$::hd0fbceff9780e430(live=0x000000012b8274e8) at torrent_state.rs:557:29 + frame #14: 0x0000000100f27ae0 ubuntu`librqbit::torrent_state::PeerStates::with_live_mut::_$u7b$$u7b$closure$u7d$$u7d$::h320cb76d1ceaf8b8(peer=0x000000012b8274e8) at torrent_state.rs:134:40 + frame #15: 0x0000000100f26e88 ubuntu`librqbit::torrent_state::PeerStates::with_peer_mut::_$u7b$$u7b$closure$u7d$$u7d$::h995e1245d2ec2d40(e=) at torrent_state.rs:119:22 + frame #16: 0x0000000100f3c414 ubuntu`core::option::Option$LT$T$GT$::map::h4d8ca31a4de2418b(self=Option> @ 0x00000001713a9200, f={closure_env#1}>, librqbit::torrent_state::{impl#0}::with_live_mut::{closure_env#0}, librqbit::torrent_state::{impl#4}::reserve_next_needed_piece::{closure_env#0}>> @ 0x00000001713a9228) at option.rs:1072:29 + frame #17: 0x0000000100f26460 ubuntu`librqbit::torrent_state::PeerStates::with_peer_mut::h746c3f2e9fa6ae69(self=0x000000012ac04f38, addr=, reason="reserve_next_needed_piece", f={closure_env#0}, librqbit::torrent_state::{impl#4}::reserve_next_needed_piece::{closure_env#0}> @ 0x00000001713a9240) at torrent_state.rs:118:9 + frame #18: 0x0000000100f2792c ubuntu`librqbit::torrent_state::PeerStates::with_live_mut::ha54fdf952970b0fb(self=0x000000012ac04f38, addr=, reason="reserve_next_needed_piece", f={closure_env#0} @ 0x00000001713a92b0) at torrent_state.rs:133:9 + frame #19: 0x0000000100f17c10 ubuntu`librqbit::torrent_state::TorrentState::reserve_next_needed_piece::h7530534a0f6e875c(self=0x000000012ac04ea0, peer_handle=SocketAddr @ 0x000000012ac04f38) at torrent_state.rs:551:9 + frame #20: 0x0000000100f2ca18 ubuntu`librqbit::torrent_state::PeerHandler::requester::_$u7b$$u7b$closure$u7d$$u7d$::h5bca314bc041909d((null)=0x00000001713ad9c0) at torrent_state.rs:1061:31 + frame #21: 0x0000000100f2c138 ubuntu`librqbit::torrent_state::PeerHandler::task_peer_chunk_requester::_$u7b$$u7b$closure$u7d$$u7d$::h61185154eba132e6((null)=0x00000001713ad9c0) at torrent_state.rs:1015:32 + frame #22: 0x0000000100eb8230 ubuntu`librqbit::spawn_utils::spawn::_$u7b$$u7b$closure$u7d$$u7d$::h54a23f93dc690329((null)=0x00000001713ad9c0) at spawn_utils.rs:9:19 + frame #23: 0x0000000100f3762c ubuntu`_$LT$tracing..instrument..Instrumented$LT$T$GT$$u20$as$u20$core..future..future..Future$GT$::poll::ha0949784faec682f(self=Pin<&mut tracing::instrument::Instrumented>> @ 0x00000001713ad7f0, cx=0x00000001713ad9c0) at instrument.rs:321:9 + frame #24: 0x0000000100ea6b1c ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$::h85fc0804c4a96f63(ptr=0x000000012a030430) at core.rs:328:17 + frame #25: 0x0000000100ea4a54 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::ha70c61143b17e094 [inlined] tokio::loom::std::unsafe_cell::UnsafeCell$LT$T$GT$::with_mut::he9488f24d16aedc4(self=0x000000012a030430, f={closure_env#0}>, alloc::sync::Arc> @ 0x00000001713ad9f8) at unsafe_cell.rs:16:9 + frame #26: 0x0000000100ea4a48 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::ha70c61143b17e094(self=0x000000012a030420, cx=Context @ 0x00000001713ad9c0) at core.rs:317:13 + frame #27: 0x0000000100f4710c ubuntu`tokio::runtime::task::harness::poll_future::_$u7b$$u7b$closure$u7d$$u7d$::h792587d9f0af054a at harness.rs:485:19 + frame #28: 0x0000000100eced44 ubuntu`_$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h1eb2b6f1d0041d89(self=AssertUnwindSafe>, alloc::sync::Arc>> @ 0x00000001713ada70, (null)=) at unwind_safe.rs:272:9 + frame #29: 0x0000000100e75664 ubuntu`std::panicking::try::do_call::hb17d9cc020d00e50(data=" \U00000004\U00000003*\U00000001") at panicking.rs:552:40 + frame #30: 0x0000000100e71358 ubuntu`std::panicking::try::hca4e5afab064f4af(f=AssertUnwindSafe>, alloc::sync::Arc>> @ 0x00000001713adb20) at panicking.rs:516:19 + frame #31: 0x0000000100ed44f8 ubuntu`std::panic::catch_unwind::he79306e778f6e542(f=AssertUnwindSafe>, alloc::sync::Arc>> @ 0x00000001713adb60) at panic.rs:142:14 + frame #32: 0x0000000100f454e0 ubuntu`tokio::runtime::task::harness::poll_future::hc6f17e9606493faf(core=0x000000012a030420, cx=Context @ 0x00000001713adc70) at harness.rs:473:18 + frame #33: 0x0000000100f4a630 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll_inner::haccf94a72e87a1f4(self=0x00000001713add28) at harness.rs:208:27 + frame #34: 0x0000000100f50428 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll::h962477a665dbd927(self=Harness>, alloc::sync::Arc> @ 0x00000001713add28) at harness.rs:153:15 + frame #35: 0x0000000100f0f014 ubuntu`tokio::runtime::task::raw::poll::h3ced65a33e48f0be(ptr=NonNull @ 0x00000001713add50) at raw.rs:271:5 + frame #36: 0x0000000101477900 ubuntu`tokio::runtime::task::raw::RawTask::poll::h1000d6912ad57420(self=RawTask @ 0x00000001713add70) at raw.rs:201:18 + frame #37: 0x0000000101463ba8 ubuntu`tokio::runtime::task::LocalNotified$LT$S$GT$::run::h614d754e09832cad(self=LocalNotified> @ 0x00000001713adda0) at mod.rs:408:9 + frame #38: 0x0000000101491e18 ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::_$u7b$$u7b$closure$u7d$$u7d$::ha7f5ee623f6de024 at worker.rs:577:13 + frame #39: 0x0000000101491ddc ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h3a91c4bdfa345831 at coop.rs:107:5 + frame #40: 0x0000000101491dac ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h3a91c4bdfa345831 [inlined] tokio::runtime::coop::budget::h8d1d2f494ba6a7cb(f={closure_env#0} @ 0x00000001713adf30) at coop.rs:73:5 + frame #41: 0x0000000101491d88 ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h3a91c4bdfa345831(self=0x00000001713ae260, task=Notified> @ 0x00000001713adf20, core=0x00006000039cc190) at worker.rs:576:9 + frame #42: 0x0000000101491a84 ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run::heaa445e39d3099a1(self=0x00000001713ae260, core=0x00006000039cc190) at worker.rs:526:24 + frame #43: 0x0000000101491894 ubuntu`tokio::runtime::scheduler::multi_thread::worker::run::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h2b571f29a8f60888 at worker.rs:491:21 + frame #44: 0x0000000101483090 ubuntu`tokio::runtime::context::scoped::Scoped$LT$T$GT$::set::hf925c595bd252f01(self=0x000000012a90aab8, t=0x00000001713ae258, f={closure_env#0} @ 0x00000001713ae0e8) at scoped.rs:40:9 + frame #45: 0x000000010144c988 ubuntu`tokio::runtime::context::set_scheduler::_$u7b$$u7b$closure$u7d$$u7d$::h0302d095e8b65143(c=0x000000012a90aa80) at context.rs:176:26 + frame #46: 0x000000010147ffa0 ubuntu`std::thread::local::LocalKey$LT$T$GT$::try_with::h6fb83be6e86818c6(self=0x0000000101766de8, f={closure_env#0}<(), tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure_env#0}> @ 0x00000001713ae1f0) at local.rs:270:16 + frame #47: 0x000000010147eca4 ubuntu`std::thread::local::LocalKey$LT$T$GT$::with::h5dcf9435a259397f(self=0x0000000101766de8, f=) at local.rs:246:9 + frame #48: 0x000000010144c954 ubuntu`tokio::runtime::context::set_scheduler::h6b6f06a5ae3a93e1(v=0x00000001713ae258, f={closure_env#0} @ 0x00000001713ae210) at context.rs:176:9 + frame #49: 0x0000000101491848 ubuntu`tokio::runtime::scheduler::multi_thread::worker::run::_$u7b$$u7b$closure$u7d$$u7d$::hf0230b52cc3b88d3((null)=0x00000001713ae3c0) at worker.rs:486:9 + frame #50: 0x000000010145d464 ubuntu`tokio::runtime::context::runtime::enter_runtime::h7a46156447e47d54(handle=0x00000001713ae458, allow_block_in_place=true, f={closure_env#0} @ 0x00000001713ae400) at runtime.rs:65:16 + frame #51: 0x000000010149172c ubuntu`tokio::runtime::scheduler::multi_thread::worker::run::h4cf7d8d53344654d(worker=strong=1, weak=0) at worker.rs:478:5 + frame #52: 0x0000000100f165f0 ubuntu`tokio::runtime::scheduler::multi_thread::worker::block_in_place::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hdcd0200f1ace3c10 at worker.rs:422:41 + frame #53: 0x0000000100ee9704 ubuntu`_$LT$tokio..runtime..blocking..task..BlockingTask$LT$T$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h5e51c8253a97db96(self=Pin<&mut tokio::runtime::blocking::task::BlockingTask>>> @ 0x00000001713ae4b8, _cx=0x00000001713ae5c0) at task.rs:42:21 + frame #54: 0x0000000100ea6efc ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$::hb7e35a417059b0ad(ptr=0x000000012a8067a8) at core.rs:328:17 + frame #55: 0x0000000100ea50b0 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::hd59079f2084d2a5c [inlined] tokio::loom::std::unsafe_cell::UnsafeCell$LT$T$GT$::with_mut::hd64ff7d14075f21c(self=0x000000012a8067a8, f={closure_env#0}>>, tokio::runtime::blocking::schedule::BlockingSchedule> @ 0x00000001713ae5f8) at unsafe_cell.rs:16:9 + frame #56: 0x0000000100ea50a4 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::hd59079f2084d2a5c(self=0x000000012a8067a0, cx=Context @ 0x00000001713ae5c0) at core.rs:317:13 + frame #57: 0x0000000100f4772c ubuntu`tokio::runtime::task::harness::poll_future::_$u7b$$u7b$closure$u7d$$u7d$::hb5f6e8c09d369fd1 at harness.rs:485:19 + frame #58: 0x0000000100ed04b0 ubuntu`_$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::he3ee8a4cae328095(self=AssertUnwindSafe>>, tokio::runtime::blocking::schedule::BlockingSchedule>> @ 0x00000001713ae670, (null)=) at unwind_safe.rs:272:9 + frame #59: 0x0000000100e73aec ubuntu`std::panicking::try::do_call::h489a70e89d3ca1b6(data="\xa0g\x80*\U00000001") at panicking.rs:552:40 + frame #60: 0x0000000100e6e638 ubuntu`std::panicking::try::h5e0d069f0af730a8(f=AssertUnwindSafe>>, tokio::runtime::blocking::schedule::BlockingSchedule>> @ 0x00000001713ae720) at panicking.rs:516:19 + frame #61: 0x0000000100ed34a8 ubuntu`std::panic::catch_unwind::h4669e6cae3323c93(f=AssertUnwindSafe>>, tokio::runtime::blocking::schedule::BlockingSchedule>> @ 0x00000001713ae760) at panic.rs:142:14 + frame #62: 0x0000000100f442e8 ubuntu`tokio::runtime::task::harness::poll_future::h7d428e00030d2cfa(core=0x000000012a8067a0, cx=Context @ 0x00000001713ae870) at harness.rs:473:18 + frame #63: 0x0000000100f49700 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll_inner::h6b3fcd463fc98a43(self=0x00000001713ae928) at harness.rs:208:27 + frame #64: 0x0000000100f4fa50 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll::h34abb3e8b9684af7(self=Harness>>, tokio::runtime::blocking::schedule::BlockingSchedule> @ 0x00000001713ae928) at harness.rs:153:15 + frame #65: 0x0000000100f0ef84 ubuntu`tokio::runtime::task::raw::poll::h30cae272b2c909e0(ptr=NonNull @ 0x00000001713ae950) at raw.rs:271:5 + frame #66: 0x0000000101477900 ubuntu`tokio::runtime::task::raw::RawTask::poll::h1000d6912ad57420(self=RawTask @ 0x00000001713ae970) at raw.rs:201:18 + frame #67: 0x0000000101463c2c ubuntu`tokio::runtime::task::UnownedTask$LT$S$GT$::run::hfc4dd67afb1a17b6(self=UnownedTask @ 0x00000001713ae9a0) at mod.rs:445:9 + frame #68: 0x000000010146ff54 ubuntu`tokio::runtime::blocking::pool::Task::run::hf0982e055b4d9b3d(self=Task @ 0x00000001713ae9c0) at pool.rs:159:9 + frame #69: 0x0000000101471428 ubuntu`tokio::runtime::blocking::pool::Inner::run::h613e034fcd5273c1(self=0x0000000129e052e0, worker_thread_id=16) at pool.rs:513:17 + frame #70: 0x00000001014712ac ubuntu`tokio::runtime::blocking::pool::Spawner::spawn_thread::_$u7b$$u7b$closure$u7d$$u7d$::h85055799f1079122 at pool.rs:471:13 + frame #71: 0x0000000101450fb0 ubuntu`std::sys_common::backtrace::__rust_begin_short_backtrace::hc00264b51514bc2a(f=) at backtrace.rs:154:18 + frame #72: 0x0000000101445cdc ubuntu`std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hf0c597d86743f4b0 at mod.rs:529:17 + frame #73: 0x00000001014a09f0 ubuntu`_$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h8e1e63be06f0c84a(self=, (null)=) at unwind_safe.rs:272:9 + frame #74: 0x0000000101456584 ubuntu`std::panicking::try::do_call::hce3444c785deac15(data="\U00000001") at panicking.rs:552:40 + frame #75: 0x0000000101455bb4 ubuntu`std::panicking::try::hdf0c5aa4f459a133(f=) at panicking.rs:516:19 + frame #76: 0x0000000101445c08 ubuntu`std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::h3869e60e8161d6b6 at panic.rs:142:14 + frame #77: 0x0000000101445c04 ubuntu`std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::h3869e60e8161d6b6 at mod.rs:528:30 + frame #78: 0x0000000101446144 ubuntu`core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h079508b8f3dc0adc((null)=0x0000600000fc0040, (null)=) at function.rs:250:5 + frame #79: 0x00000001015b7334 ubuntu`std::sys::unix::thread::Thread::new::thread_start::hc8d37e25d4657683 [inlined] _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::ha50e0d33beaa94b5 at boxed.rs:2007:9 [opt] + frame #80: 0x00000001015b7328 ubuntu`std::sys::unix::thread::Thread::new::thread_start::hc8d37e25d4657683 [inlined] _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::h320b0db4bb8e0440 at boxed.rs:2007:9 [opt] + frame #81: 0x00000001015b7324 ubuntu`std::sys::unix::thread::Thread::new::thread_start::hc8d37e25d4657683 at thread.rs:108:17 [opt] + frame #82: 0x000000018c159034 libsystem_pthread.dylib`_pthread_start + 136 + thread #9, name = 'tokio-runtime-worker' + frame #0: 0x000000018c11c0ac libsystem_kernel.dylib`__psynch_cvwait + 8 + frame #1: 0x000000018c1595fc libsystem_pthread.dylib`_pthread_cond_wait + 1228 + frame #2: 0x0000000101124828 ubuntu`_$LT$parking_lot_core..thread_parker..imp..ThreadParker$u20$as$u20$parking_lot_core..thread_parker..ThreadParkerT$GT$::park::h81c3633b1efcc0d3(self=0x000000012a9064c8) at unix.rs:77:21 + frame #3: 0x0000000101125fd8 ubuntu`parking_lot_core::parking_lot::park::_$u7b$$u7b$closure$u7d$$u7d$::h86031eb220440ab6(thread_data=0x000000012a9064c8) at parking_lot.rs:635:17 + frame #4: 0x00000001011258b0 ubuntu`parking_lot_core::parking_lot::park::hf4b3e8965b659760 at parking_lot.rs:207:5 + frame #5: 0x000000010112586c ubuntu`parking_lot_core::parking_lot::park::hf4b3e8965b659760(key=5024852649, validate={closure_env#0} @ 0x0000000172824a00, before_sleep={closure_env#1} @ 0x0000000172824a0e, timed_out={closure_env#2} @ 0x0000000172824a0f, park_token=ParkToken @ 0x00000001728249c8, timeout=Option @ 0x00000001728249d0) at parking_lot.rs:600:5 + frame #6: 0x00000001015e2a10 ubuntu`dashmap::lock::RawRwLock::lock_shared_slow::h334165b2f5c9384b(self=0x000000012b812aa8) at lock.rs:270:21 + frame #7: 0x0000000100e41588 ubuntu`_$LT$dashmap..lock..RawRwLock$u20$as$u20$lock_api..rwlock..RawRwLock$GT$::lock_shared::h5de6b0427458a49d(self=0x000000012b812aa8) at lock.rs:62:13 + frame #8: 0x0000000100e68760 ubuntu`lock_api::rwlock::RwLock$LT$R$C$T$GT$::read::h608658d5ac4b6a2d(self=0x000000012b812aa8) at rwlock.rs:459:9 + frame #9: 0x0000000100e516e0 ubuntu`_$LT$dashmap..DashMap$LT$K$C$V$C$S$GT$$u20$as$u20$dashmap..t..Map$LT$K$C$V$C$S$GT$$GT$::_yield_read_shard::h84bc69d2d64a0791(self=0x000000012ac04f38, i=3) at lib.rs:891:9 + frame #10: 0x0000000100f16ba0 ubuntu`_$LT$dashmap..iter..Iter$LT$K$C$V$C$S$C$M$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::hb1e9fda45c3f5907(self=0x0000000172825040) at iter.rs:174:34 + frame #11: 0x0000000100f16884 ubuntu`core::iter::traits::iterator::Iterator::fold::hb050bd376eb4851a(self=Iter> @ 0x0000000172825040, init=, f={closure_env#0} @ 0x0000000172824ed7) at iterator.rs:2639:29 + frame #12: 0x0000000100f25db8 ubuntu`librqbit::torrent_state::PeerStates::stats::_$u7b$$u7b$closure$u7d$$u7d$::hd59e6c38ca10527f at torrent_state.rs:83:13 + frame #13: 0x0000000100f16cd0 ubuntu`librqbit::torrent_state::PeerStates::stats::h19c78f686fc82ec4 [inlined] librqbit::torrent_state::timed_existence::timeit::he9134af8f822c0db(_n="PeerStates::stats", f={closure_env#0} @ 0x00000001728250e8) at torrent_state.rs:320:9 + frame #14: 0x0000000100f16ccc ubuntu`librqbit::torrent_state::PeerStates::stats::h19c78f686fc82ec4(self=0x000000012ac04f38) at torrent_state.rs:82:9 + frame #15: 0x0000000100f1e854 ubuntu`librqbit::torrent_state::TorrentState::stats_snapshot::hd1d23431a2423ac4(self=0x000000012ac04ea0) at torrent_state.rs:814:26 + frame #16: 0x0000000100d3ce18 ubuntu`ubuntu::main::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h83250063274c5a73((null)=0x00000001728259c0) at ubuntu.rs:58:29 + frame #17: 0x0000000100daf5a0 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$::h79917eeebd8da4bf(ptr=0x000000012a8054b0) at core.rs:328:17 + frame #18: 0x0000000100dae914 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::h4de5834817b41167 [inlined] tokio::loom::std::unsafe_cell::UnsafeCell$LT$T$GT$::with_mut::h814e071762dc01e7(self=0x000000012a8054b0, f={closure_env#0}> @ 0x00000001728259f8) at unsafe_cell.rs:16:9 + frame #19: 0x0000000100dae908 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::h4de5834817b41167(self=0x000000012a8054a0, cx=Context @ 0x00000001728259c0) at core.rs:317:13 + frame #20: 0x0000000100d20fc0 ubuntu`tokio::runtime::task::harness::poll_future::_$u7b$$u7b$closure$u7d$$u7d$::h5dbac610dcd51c05 at harness.rs:485:19 + frame #21: 0x0000000100d2c850 ubuntu`_$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h9543cf5917c58f0a(self=AssertUnwindSafe>> @ 0x0000000172825a70, (null)=) at unwind_safe.rs:272:9 + frame #22: 0x0000000100d978c0 ubuntu`std::panicking::try::do_call::h787058153fa1937a(data="\xa0T\x80*\U00000001") at panicking.rs:552:40 + frame #23: 0x0000000100d956b0 ubuntu`std::panicking::try::ha4b80fdbe60b6612(f=AssertUnwindSafe>> @ 0x0000000172825b20) at panicking.rs:516:19 + frame #24: 0x0000000100dc30a0 ubuntu`std::panic::catch_unwind::hef8577e7fdc5ba02(f=AssertUnwindSafe>> @ 0x0000000172825b60) at panic.rs:142:14 + frame #25: 0x0000000100d20660 ubuntu`tokio::runtime::task::harness::poll_future::hd3f48a099c574665(core=0x000000012a8054a0, cx=Context @ 0x0000000172825c70) at harness.rs:473:18 + frame #26: 0x0000000100d22414 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll_inner::h633fce5e0d45add7(self=0x0000000172825d28) at harness.rs:208:27 + frame #27: 0x0000000100d2514c ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll::h082197922e651306(self=Harness> @ 0x0000000172825d28) at harness.rs:153:15 + frame #28: 0x0000000100dc455c ubuntu`tokio::runtime::task::raw::poll::h88effb4e48acc935(ptr=NonNull @ 0x0000000172825d50) at raw.rs:271:5 + frame #29: 0x0000000101477900 ubuntu`tokio::runtime::task::raw::RawTask::poll::h1000d6912ad57420(self=RawTask @ 0x0000000172825d70) at raw.rs:201:18 + frame #30: 0x0000000101463ba8 ubuntu`tokio::runtime::task::LocalNotified$LT$S$GT$::run::h614d754e09832cad(self=LocalNotified> @ 0x0000000172825da0) at mod.rs:408:9 + frame #31: 0x0000000101491e18 ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::_$u7b$$u7b$closure$u7d$$u7d$::ha7f5ee623f6de024 at worker.rs:577:13 + frame #32: 0x0000000101491ddc ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h3a91c4bdfa345831 at coop.rs:107:5 + frame #33: 0x0000000101491dac ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h3a91c4bdfa345831 [inlined] tokio::runtime::coop::budget::h8d1d2f494ba6a7cb(f={closure_env#0} @ 0x0000000172825f30) at coop.rs:73:5 + frame #34: 0x0000000101491d88 ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h3a91c4bdfa345831(self=0x0000000172826260, task=Notified> @ 0x0000000172825f20, core=0x00006000039cc230) at worker.rs:576:9 + frame #35: 0x0000000101491b7c ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run::heaa445e39d3099a1(self=0x0000000172826260, core=0x00006000039cc230) at worker.rs:538:24 + frame #36: 0x0000000101491894 ubuntu`tokio::runtime::scheduler::multi_thread::worker::run::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h2b571f29a8f60888 at worker.rs:491:21 + frame #37: 0x0000000101483090 ubuntu`tokio::runtime::context::scoped::Scoped$LT$T$GT$::set::hf925c595bd252f01(self=0x000000012a906318, t=0x0000000172826258, f={closure_env#0} @ 0x00000001728260e8) at scoped.rs:40:9 + frame #38: 0x000000010144c988 ubuntu`tokio::runtime::context::set_scheduler::_$u7b$$u7b$closure$u7d$$u7d$::h0302d095e8b65143(c=0x000000012a9062e0) at context.rs:176:26 + frame #39: 0x000000010147ffa0 ubuntu`std::thread::local::LocalKey$LT$T$GT$::try_with::h6fb83be6e86818c6(self=0x0000000101766de8, f={closure_env#0}<(), tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure_env#0}> @ 0x00000001728261f0) at local.rs:270:16 + frame #40: 0x000000010147eca4 ubuntu`std::thread::local::LocalKey$LT$T$GT$::with::h5dcf9435a259397f(self=0x0000000101766de8, f=) at local.rs:246:9 + frame #41: 0x000000010144c954 ubuntu`tokio::runtime::context::set_scheduler::h6b6f06a5ae3a93e1(v=0x0000000172826258, f={closure_env#0} @ 0x0000000172826210) at context.rs:176:9 + frame #42: 0x0000000101491848 ubuntu`tokio::runtime::scheduler::multi_thread::worker::run::_$u7b$$u7b$closure$u7d$$u7d$::hf0230b52cc3b88d3((null)=0x00000001728263c0) at worker.rs:486:9 + frame #43: 0x000000010145d464 ubuntu`tokio::runtime::context::runtime::enter_runtime::h7a46156447e47d54(handle=0x0000000172826458, allow_block_in_place=true, f={closure_env#0} @ 0x0000000172826400) at runtime.rs:65:16 + frame #44: 0x000000010149172c ubuntu`tokio::runtime::scheduler::multi_thread::worker::run::h4cf7d8d53344654d(worker=strong=1, weak=0) at worker.rs:478:5 + frame #45: 0x0000000100f165f0 ubuntu`tokio::runtime::scheduler::multi_thread::worker::block_in_place::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hdcd0200f1ace3c10 at worker.rs:422:41 + frame #46: 0x0000000100ee9704 ubuntu`_$LT$tokio..runtime..blocking..task..BlockingTask$LT$T$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h5e51c8253a97db96(self=Pin<&mut tokio::runtime::blocking::task::BlockingTask>>> @ 0x00000001728264b8, _cx=0x00000001728265c0) at task.rs:42:21 + frame #47: 0x0000000100ea6efc ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$::hb7e35a417059b0ad(ptr=0x000000012ac06828) at core.rs:328:17 + frame #48: 0x0000000100ea50b0 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::hd59079f2084d2a5c [inlined] tokio::loom::std::unsafe_cell::UnsafeCell$LT$T$GT$::with_mut::hd64ff7d14075f21c(self=0x000000012ac06828, f={closure_env#0}>>, tokio::runtime::blocking::schedule::BlockingSchedule> @ 0x00000001728265f8) at unsafe_cell.rs:16:9 + frame #49: 0x0000000100ea50a4 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::hd59079f2084d2a5c(self=0x000000012ac06820, cx=Context @ 0x00000001728265c0) at core.rs:317:13 + frame #50: 0x0000000100f4772c ubuntu`tokio::runtime::task::harness::poll_future::_$u7b$$u7b$closure$u7d$$u7d$::hb5f6e8c09d369fd1 at harness.rs:485:19 + frame #51: 0x0000000100ed04b0 ubuntu`_$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::he3ee8a4cae328095(self=AssertUnwindSafe>>, tokio::runtime::blocking::schedule::BlockingSchedule>> @ 0x0000000172826670, (null)=) at unwind_safe.rs:272:9 + frame #52: 0x0000000100e73aec ubuntu`std::panicking::try::do_call::h489a70e89d3ca1b6(data=" h\xc0*\U00000001") at panicking.rs:552:40 + frame #53: 0x0000000100e6e638 ubuntu`std::panicking::try::h5e0d069f0af730a8(f=AssertUnwindSafe>>, tokio::runtime::blocking::schedule::BlockingSchedule>> @ 0x0000000172826720) at panicking.rs:516:19 + frame #54: 0x0000000100ed34a8 ubuntu`std::panic::catch_unwind::h4669e6cae3323c93(f=AssertUnwindSafe>>, tokio::runtime::blocking::schedule::BlockingSchedule>> @ 0x0000000172826760) at panic.rs:142:14 + frame #55: 0x0000000100f442e8 ubuntu`tokio::runtime::task::harness::poll_future::h7d428e00030d2cfa(core=0x000000012ac06820, cx=Context @ 0x0000000172826870) at harness.rs:473:18 + frame #56: 0x0000000100f49700 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll_inner::h6b3fcd463fc98a43(self=0x0000000172826928) at harness.rs:208:27 + frame #57: 0x0000000100f4fa50 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll::h34abb3e8b9684af7(self=Harness>>, tokio::runtime::blocking::schedule::BlockingSchedule> @ 0x0000000172826928) at harness.rs:153:15 + frame #58: 0x0000000100f0ef84 ubuntu`tokio::runtime::task::raw::poll::h30cae272b2c909e0(ptr=NonNull @ 0x0000000172826950) at raw.rs:271:5 + frame #59: 0x0000000101477900 ubuntu`tokio::runtime::task::raw::RawTask::poll::h1000d6912ad57420(self=RawTask @ 0x0000000172826970) at raw.rs:201:18 + frame #60: 0x0000000101463c2c ubuntu`tokio::runtime::task::UnownedTask$LT$S$GT$::run::hfc4dd67afb1a17b6(self=UnownedTask @ 0x00000001728269a0) at mod.rs:445:9 + frame #61: 0x000000010146ff54 ubuntu`tokio::runtime::blocking::pool::Task::run::hf0982e055b4d9b3d(self=Task @ 0x00000001728269c0) at pool.rs:159:9 + frame #62: 0x0000000101471428 ubuntu`tokio::runtime::blocking::pool::Inner::run::h613e034fcd5273c1(self=0x0000000129e052e0, worker_thread_id=26) at pool.rs:513:17 + frame #63: 0x00000001014712ac ubuntu`tokio::runtime::blocking::pool::Spawner::spawn_thread::_$u7b$$u7b$closure$u7d$$u7d$::h85055799f1079122 at pool.rs:471:13 + frame #64: 0x0000000101450fb0 ubuntu`std::sys_common::backtrace::__rust_begin_short_backtrace::hc00264b51514bc2a(f=) at backtrace.rs:154:18 + frame #65: 0x0000000101445cdc ubuntu`std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hf0c597d86743f4b0 at mod.rs:529:17 + frame #66: 0x00000001014a09f0 ubuntu`_$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h8e1e63be06f0c84a(self=, (null)=) at unwind_safe.rs:272:9 + frame #67: 0x0000000101456584 ubuntu`std::panicking::try::do_call::hce3444c785deac15(data="\U00000001") at panicking.rs:552:40 + frame #68: 0x0000000101455bb4 ubuntu`std::panicking::try::hdf0c5aa4f459a133(f=) at panicking.rs:516:19 + frame #69: 0x0000000101445c08 ubuntu`std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::h3869e60e8161d6b6 at panic.rs:142:14 + frame #70: 0x0000000101445c04 ubuntu`std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::h3869e60e8161d6b6 at mod.rs:528:30 + frame #71: 0x0000000101446144 ubuntu`core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h079508b8f3dc0adc((null)=0x0000600000fc4700, (null)=) at function.rs:250:5 + frame #72: 0x00000001015b7334 ubuntu`std::sys::unix::thread::Thread::new::thread_start::hc8d37e25d4657683 [inlined] _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::ha50e0d33beaa94b5 at boxed.rs:2007:9 [opt] + frame #73: 0x00000001015b7328 ubuntu`std::sys::unix::thread::Thread::new::thread_start::hc8d37e25d4657683 [inlined] _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::h320b0db4bb8e0440 at boxed.rs:2007:9 [opt] + frame #74: 0x00000001015b7324 ubuntu`std::sys::unix::thread::Thread::new::thread_start::hc8d37e25d4657683 at thread.rs:108:17 [opt] + frame #75: 0x000000018c159034 libsystem_pthread.dylib`_pthread_start + 136 + thread #10, name = 'tokio-runtime-worker' + frame #0: 0x000000018c11c0ac libsystem_kernel.dylib`__psynch_cvwait + 8 + frame #1: 0x000000018c1595fc libsystem_pthread.dylib`_pthread_cond_wait + 1228 + frame #2: 0x0000000101124828 ubuntu`_$LT$parking_lot_core..thread_parker..imp..ThreadParker$u20$as$u20$parking_lot_core..thread_parker..ThreadParkerT$GT$::park::h81c3633b1efcc0d3(self=0x0000000129e09668) at unix.rs:77:21 + frame #3: 0x0000000101125b50 ubuntu`parking_lot_core::parking_lot::park::_$u7b$$u7b$closure$u7d$$u7d$::h18f410baacc0559c(thread_data=0x0000000129e09668) at parking_lot.rs:635:17 + frame #4: 0x0000000101125974 ubuntu`parking_lot_core::parking_lot::park::hffd40fb41585b576 at parking_lot.rs:207:5 + frame #5: 0x0000000101125930 ubuntu`parking_lot_core::parking_lot::park::hffd40fb41585b576(key=5024852648, validate={closure_env#0} @ 0x0000000172c327f0, before_sleep={closure_env#1} @ 0x0000000172c327fe, timed_out={closure_env#2} @ 0x0000000172c327ff, park_token=ParkToken @ 0x0000000172c327b8, timeout=Option @ 0x0000000172c327c0) at parking_lot.rs:600:5 + frame #6: 0x00000001015e23e4 ubuntu`dashmap::lock::RawRwLock::lock_exclusive_slow::hb412df9abc0204f0(self=0x000000012b812aa8) at lock.rs:127:21 + frame #7: 0x0000000100e4165c ubuntu`_$LT$dashmap..lock..RawRwLock$u20$as$u20$lock_api..rwlock..RawRwLock$GT$::lock_exclusive::h8ead4ac4d98471f7(self=0x000000012b812aa8) at lock.rs:39:13 + frame #8: 0x0000000100e68820 ubuntu`lock_api::rwlock::RwLock$LT$R$C$T$GT$::write::hc4e7fe16952d8032(self=0x000000012b812aa8) at rwlock.rs:491:9 + frame #9: 0x0000000100e51764 ubuntu`_$LT$dashmap..DashMap$LT$K$C$V$C$S$GT$$u20$as$u20$dashmap..t..Map$LT$K$C$V$C$S$GT$$GT$::_yield_write_shard::h971feeadba981b7d(self=0x000000012ac04f38, i=3) at lib.rs:897:9 + frame #10: 0x0000000100e51bcc ubuntu`_$LT$dashmap..DashMap$LT$K$C$V$C$S$GT$$u20$as$u20$dashmap..t..Map$LT$K$C$V$C$S$GT$$GT$::_get_mut::hc1bddeaceb84f34a(self=0x000000012ac04f38, key=0x0000000172c32b90) at lib.rs:1037:30 + frame #11: 0x0000000100e51658 ubuntu`dashmap::DashMap$LT$K$C$V$C$S$GT$::get_mut::h96e2ddc143de3c77(self=0x000000012ac04f38, key=0x0000000172c32b90) at lib.rs:595:9 + frame #12: 0x0000000100f26948 ubuntu`librqbit::torrent_state::PeerStates::with_peer_mut::_$u7b$$u7b$closure$u7d$$u7d$::hc8aa11de2fa81c71 at torrent_state.rs:118:27 + frame #13: 0x0000000100f26750 ubuntu`librqbit::torrent_state::PeerStates::with_peer_mut::he509a74b0af1a29d [inlined] librqbit::torrent_state::timed_existence::timeit::hfd902a2f8ad09d07(_n="reset_peer_backoff", f={closure_env#0}<(), librqbit::torrent_state::{impl#0}::reset_peer_backoff::{closure_env#0}> @ 0x0000000172c32b60) at torrent_state.rs:320:9 + frame #14: 0x0000000100f2674c ubuntu`librqbit::torrent_state::PeerStates::with_peer_mut::he509a74b0af1a29d(self=0x000000012ac04f38, addr=, reason="reset_peer_backoff", f={closure_env#0} @ 0x0000000172c32b4f) at torrent_state.rs:118:9 + frame #15: 0x0000000100f170d4 ubuntu`librqbit::torrent_state::PeerStates::reset_peer_backoff::ha633931ec2b2dfc2(self=0x000000012ac04f38, handle=) at torrent_state.rs:187:9 + frame #16: 0x0000000100f2f7bc ubuntu`librqbit::torrent_state::PeerHandler::on_received_piece::_$u7b$$u7b$closure$u7d$$u7d$::hc462ed89ec5b7416 at torrent_state.rs:1292:29 + frame #17: 0x0000000100efc118 ubuntu`tokio::runtime::context::runtime_mt::exit_runtime::h36289c34cbb792cc(f={closure_env#2} @ 0x0000000172c342c0) at runtime_mt.rs:35:5 + frame #18: 0x0000000100f15ce8 ubuntu`tokio::runtime::scheduler::multi_thread::worker::block_in_place::h371a12fb5f797b5b(f={closure_env#2} @ 0x0000000172c342c0) at worker.rs:438:9 + frame #19: 0x0000000100efc8fc ubuntu`tokio::runtime::scheduler::block_in_place::block_in_place::h49e3226cebf17b1b(f=) at block_in_place.rs:20:5 + frame #20: 0x0000000100ef6ec8 ubuntu`tokio::task::blocking::block_in_place::ha149fbe3163f3299(f=) at blocking.rs:78:9 + frame #21: 0x0000000100ebeddc ubuntu`librqbit::spawn_utils::BlockingSpawner::spawn_block_in_place::h85643b434b030ed1(self=0x000000012d01a2b8, f={closure_env#2} @ 0x0000000172c342c0) at spawn_utils.rs:35:20 + frame #22: 0x0000000100f25080 ubuntu`librqbit::torrent_state::PeerHandler::on_received_piece::hfc76de485b1e69e4(self=0x000000012d01a290, handle=SocketAddr @ 0x0000000172c34b00, piece=Piece @ 0x0000000172c34ae0) at torrent_state.rs:1241:9 + frame #23: 0x0000000100f1ed9c ubuntu`_$LT$librqbit..torrent_state..PeerHandler$u20$as$u20$librqbit..peer_connection..PeerConnectionHandler$GT$::on_received_message::hcc2c1a998973e6ea(self=0x000000012d01a290, message=Message @ 0x0000000172c36308) at torrent_state.rs:860:38 + frame #24: 0x0000000100ec903c ubuntu`librqbit::peer_connection::PeerConnection$LT$H$GT$::manage_peer::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hd19286c0558488e9((null)=0x0000000172c3d9c0) at peer_connection.rs:270:17 + frame #25: 0x0000000100eca618 ubuntu`librqbit::peer_connection::PeerConnection$LT$H$GT$::manage_peer::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hdf7259baa4ab1268(cx=0x0000000172c3d9c0) at select.rs:524:49 + frame #26: 0x0000000100e5dac4 ubuntu`_$LT$tokio..future..poll_fn..PollFn$LT$F$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h598619c9121a1021(self=Pin<&mut tokio::future::poll_fn::PollFn>> @ 0x0000000172c36790, cx=0x0000000172c3d9c0) at poll_fn.rs:58:9 + frame #27: 0x0000000100ec62f4 ubuntu`librqbit::peer_connection::PeerConnection$LT$H$GT$::manage_peer::_$u7b$$u7b$closure$u7d$$u7d$::hbde87e7c4a75cde5((null)=0x0000000172c3d9c0) at peer_connection.rs:285:17 + frame #28: 0x0000000100f285a0 ubuntu`librqbit::torrent_state::TorrentState::task_manage_peer::_$u7b$$u7b$closure$u7d$$u7d$::hea04718635b021e0((null)=0x0000000172c3d9c0) at torrent_state.rs:462:51 + frame #29: 0x0000000100eb6a58 ubuntu`librqbit::spawn_utils::spawn::_$u7b$$u7b$closure$u7d$$u7d$::h22a15ea7de950e84((null)=0x0000000172c3d9c0) at spawn_utils.rs:9:19 + frame #30: 0x0000000100f37ad4 ubuntu`_$LT$tracing..instrument..Instrumented$LT$T$GT$$u20$as$u20$core..future..future..Future$GT$::poll::hf306b1b8f8b746ec(self=Pin<&mut tracing::instrument::Instrumented>> @ 0x0000000172c3d7b0, cx=0x0000000172c3d9c0) at instrument.rs:321:9 + frame #31: 0x0000000100e5c764 ubuntu`_$LT$core..pin..Pin$LT$P$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h75c2f3181b0cf1aa(self=Pin<&mut core::pin::Pin>, alloc::alloc::Global>>> @ 0x0000000172c3d8b8, cx=0x0000000172c3d9c0) at future.rs:125:9 + frame #32: 0x0000000100ea616c ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$::h5e7de2bf5eee2830(ptr=0x000000012a905630) at core.rs:328:17 + frame #33: 0x0000000100ea4ef4 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::hc59bc6d6b6e00c95 [inlined] tokio::loom::std::unsafe_cell::UnsafeCell$LT$T$GT$::with_mut::h6f1eac3b5cc2f9fc(self=0x000000012a905630, f={closure_env#0}>, alloc::alloc::Global>>, alloc::sync::Arc> @ 0x0000000172c3d9f8) at unsafe_cell.rs:16:9 + frame #34: 0x0000000100ea4ee8 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::hc59bc6d6b6e00c95(self=0x000000012a905620, cx=Context @ 0x0000000172c3d9c0) at core.rs:317:13 + frame #35: 0x0000000100f46a7c ubuntu`tokio::runtime::task::harness::poll_future::_$u7b$$u7b$closure$u7d$$u7d$::h1ac58a34f257fa4e at harness.rs:485:19 + frame #36: 0x0000000100ecf5a8 ubuntu`_$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h65267074a1338221(self=AssertUnwindSafe>, alloc::alloc::Global>>, alloc::sync::Arc>> @ 0x0000000172c3da70, (null)=) at unwind_safe.rs:272:9 + frame #37: 0x0000000100e75468 ubuntu`std::panicking::try::do_call::ha519f6d3905eb2d3(data=" V\x90*\U00000001") at panicking.rs:552:40 + frame #38: 0x0000000100e72540 ubuntu`std::panicking::try::hf6253d263edac0a7(f=AssertUnwindSafe>, alloc::alloc::Global>>, alloc::sync::Arc>> @ 0x0000000172c3db20) at panicking.rs:516:19 + frame #39: 0x0000000100ed36a8 ubuntu`std::panic::catch_unwind::h5882a801edf9c0d0(f=AssertUnwindSafe>, alloc::alloc::Global>>, alloc::sync::Arc>> @ 0x0000000172c3db60) at panic.rs:142:14 + frame #40: 0x0000000100f45c10 ubuntu`tokio::runtime::task::harness::poll_future::hd86755375ddf0d4a(core=0x000000012a905620, cx=Context @ 0x0000000172c3dc70) at harness.rs:473:18 + frame #41: 0x0000000100f48b9c ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll_inner::h37fc87829deea2a7(self=0x0000000172c3dd28) at harness.rs:208:27 + frame #42: 0x0000000100f50188 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll::h7332793119460ed4(self=Harness>, alloc::alloc::Global>>, alloc::sync::Arc> @ 0x0000000172c3dd28) at harness.rs:153:15 + frame #43: 0x0000000100f0f104 ubuntu`tokio::runtime::task::raw::poll::h51db310fbcdeebd3(ptr=NonNull @ 0x0000000172c3dd50) at raw.rs:271:5 + frame #44: 0x0000000101477900 ubuntu`tokio::runtime::task::raw::RawTask::poll::h1000d6912ad57420(self=RawTask @ 0x0000000172c3dd70) at raw.rs:201:18 + frame #45: 0x0000000101463ba8 ubuntu`tokio::runtime::task::LocalNotified$LT$S$GT$::run::h614d754e09832cad(self=LocalNotified> @ 0x0000000172c3dda0) at mod.rs:408:9 + frame #46: 0x0000000101491e18 ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::_$u7b$$u7b$closure$u7d$$u7d$::ha7f5ee623f6de024 at worker.rs:577:13 + frame #47: 0x0000000101491ddc ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h3a91c4bdfa345831 at coop.rs:107:5 + frame #48: 0x0000000101491dac ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h3a91c4bdfa345831 [inlined] tokio::runtime::coop::budget::h8d1d2f494ba6a7cb(f={closure_env#0} @ 0x0000000172c3df30) at coop.rs:73:5 + frame #49: 0x0000000101491d88 ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h3a91c4bdfa345831(self=0x0000000172c3e260, task=Notified> @ 0x0000000172c3df20, core=0x00006000039cc2d0) at worker.rs:576:9 + frame #50: 0x0000000101491a84 ubuntu`tokio::runtime::scheduler::multi_thread::worker::Context::run::heaa445e39d3099a1(self=0x0000000172c3e260, core=0x00006000039cc2d0) at worker.rs:526:24 + frame #51: 0x0000000101491894 ubuntu`tokio::runtime::scheduler::multi_thread::worker::run::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h2b571f29a8f60888 at worker.rs:491:21 + frame #52: 0x0000000101483090 ubuntu`tokio::runtime::context::scoped::Scoped$LT$T$GT$::set::hf925c595bd252f01(self=0x0000000129e094b8, t=0x0000000172c3e258, f={closure_env#0} @ 0x0000000172c3e0e8) at scoped.rs:40:9 + frame #53: 0x000000010144c988 ubuntu`tokio::runtime::context::set_scheduler::_$u7b$$u7b$closure$u7d$$u7d$::h0302d095e8b65143(c=0x0000000129e09480) at context.rs:176:26 + frame #54: 0x000000010147ffa0 ubuntu`std::thread::local::LocalKey$LT$T$GT$::try_with::h6fb83be6e86818c6(self=0x0000000101766de8, f={closure_env#0}<(), tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure_env#0}> @ 0x0000000172c3e1f0) at local.rs:270:16 + frame #55: 0x000000010147eca4 ubuntu`std::thread::local::LocalKey$LT$T$GT$::with::h5dcf9435a259397f(self=0x0000000101766de8, f=) at local.rs:246:9 + frame #56: 0x000000010144c954 ubuntu`tokio::runtime::context::set_scheduler::h6b6f06a5ae3a93e1(v=0x0000000172c3e258, f={closure_env#0} @ 0x0000000172c3e210) at context.rs:176:9 + frame #57: 0x0000000101491848 ubuntu`tokio::runtime::scheduler::multi_thread::worker::run::_$u7b$$u7b$closure$u7d$$u7d$::hf0230b52cc3b88d3((null)=0x0000000172c3e3c0) at worker.rs:486:9 + frame #58: 0x000000010145d464 ubuntu`tokio::runtime::context::runtime::enter_runtime::h7a46156447e47d54(handle=0x0000000172c3e458, allow_block_in_place=true, f={closure_env#0} @ 0x0000000172c3e400) at runtime.rs:65:16 + frame #59: 0x000000010149172c ubuntu`tokio::runtime::scheduler::multi_thread::worker::run::h4cf7d8d53344654d(worker=strong=2, weak=0) at worker.rs:478:5 + frame #60: 0x0000000100f165f0 ubuntu`tokio::runtime::scheduler::multi_thread::worker::block_in_place::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hdcd0200f1ace3c10 at worker.rs:422:41 + frame #61: 0x0000000100ee9704 ubuntu`_$LT$tokio..runtime..blocking..task..BlockingTask$LT$T$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h5e51c8253a97db96(self=Pin<&mut tokio::runtime::blocking::task::BlockingTask>>> @ 0x0000000172c3e4b8, _cx=0x0000000172c3e5c0) at task.rs:42:21 + frame #62: 0x0000000100ea6efc ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$::hb7e35a417059b0ad(ptr=0x0000000129e07328) at core.rs:328:17 + frame #63: 0x0000000100ea50b0 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::hd59079f2084d2a5c [inlined] tokio::loom::std::unsafe_cell::UnsafeCell$LT$T$GT$::with_mut::hd64ff7d14075f21c(self=0x0000000129e07328, f={closure_env#0}>>, tokio::runtime::blocking::schedule::BlockingSchedule> @ 0x0000000172c3e5f8) at unsafe_cell.rs:16:9 + frame #64: 0x0000000100ea50a4 ubuntu`tokio::runtime::task::core::Core$LT$T$C$S$GT$::poll::hd59079f2084d2a5c(self=0x0000000129e07320, cx=Context @ 0x0000000172c3e5c0) at core.rs:317:13 + frame #65: 0x0000000100f4772c ubuntu`tokio::runtime::task::harness::poll_future::_$u7b$$u7b$closure$u7d$$u7d$::hb5f6e8c09d369fd1 at harness.rs:485:19 + frame #66: 0x0000000100ed04b0 ubuntu`_$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::he3ee8a4cae328095(self=AssertUnwindSafe>>, tokio::runtime::blocking::schedule::BlockingSchedule>> @ 0x0000000172c3e670, (null)=) at unwind_safe.rs:272:9 + frame #67: 0x0000000100e73aec ubuntu`std::panicking::try::do_call::h489a70e89d3ca1b6(data=" s\xe0)\U00000001") at panicking.rs:552:40 + frame #68: 0x0000000100e6e638 ubuntu`std::panicking::try::h5e0d069f0af730a8(f=AssertUnwindSafe>>, tokio::runtime::blocking::schedule::BlockingSchedule>> @ 0x0000000172c3e720) at panicking.rs:516:19 + frame #69: 0x0000000100ed34a8 ubuntu`std::panic::catch_unwind::h4669e6cae3323c93(f=AssertUnwindSafe>>, tokio::runtime::blocking::schedule::BlockingSchedule>> @ 0x0000000172c3e760) at panic.rs:142:14 + frame #70: 0x0000000100f442e8 ubuntu`tokio::runtime::task::harness::poll_future::h7d428e00030d2cfa(core=0x0000000129e07320, cx=Context @ 0x0000000172c3e870) at harness.rs:473:18 + frame #71: 0x0000000100f49700 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll_inner::h6b3fcd463fc98a43(self=0x0000000172c3e928) at harness.rs:208:27 + frame #72: 0x0000000100f4fa50 ubuntu`tokio::runtime::task::harness::Harness$LT$T$C$S$GT$::poll::h34abb3e8b9684af7(self=Harness>>, tokio::runtime::blocking::schedule::BlockingSchedule> @ 0x0000000172c3e928) at harness.rs:153:15 + frame #73: 0x0000000100f0ef84 ubuntu`tokio::runtime::task::raw::poll::h30cae272b2c909e0(ptr=NonNull @ 0x0000000172c3e950) at raw.rs:271:5 + frame #74: 0x0000000101477900 ubuntu`tokio::runtime::task::raw::RawTask::poll::h1000d6912ad57420(self=RawTask @ 0x0000000172c3e970) at raw.rs:201:18 + frame #75: 0x0000000101463c2c ubuntu`tokio::runtime::task::UnownedTask$LT$S$GT$::run::hfc4dd67afb1a17b6(self=UnownedTask @ 0x0000000172c3e9a0) at mod.rs:445:9 + frame #76: 0x000000010146ff54 ubuntu`tokio::runtime::blocking::pool::Task::run::hf0982e055b4d9b3d(self=Task @ 0x0000000172c3e9c0) at pool.rs:159:9 + frame #77: 0x0000000101471428 ubuntu`tokio::runtime::blocking::pool::Inner::run::h613e034fcd5273c1(self=0x0000000129e052e0, worker_thread_id=28) at pool.rs:513:17 + frame #78: 0x00000001014712ac ubuntu`tokio::runtime::blocking::pool::Spawner::spawn_thread::_$u7b$$u7b$closure$u7d$$u7d$::h85055799f1079122 at pool.rs:471:13 + frame #79: 0x0000000101450fb0 ubuntu`std::sys_common::backtrace::__rust_begin_short_backtrace::hc00264b51514bc2a(f=) at backtrace.rs:154:18 + frame #80: 0x0000000101445cdc ubuntu`std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hf0c597d86743f4b0 at mod.rs:529:17 + frame #81: 0x00000001014a09f0 ubuntu`_$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h8e1e63be06f0c84a(self=, (null)=) at unwind_safe.rs:272:9 + frame #82: 0x0000000101456584 ubuntu`std::panicking::try::do_call::hce3444c785deac15(data="\U00000001") at panicking.rs:552:40 + frame #83: 0x0000000101455bb4 ubuntu`std::panicking::try::hdf0c5aa4f459a133(f=) at panicking.rs:516:19 + frame #84: 0x0000000101445c08 ubuntu`std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::h3869e60e8161d6b6 at panic.rs:142:14 + frame #85: 0x0000000101445c04 ubuntu`std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::h3869e60e8161d6b6 at mod.rs:528:30 + frame #86: 0x0000000101446144 ubuntu`core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h079508b8f3dc0adc((null)=0x0000600000fc4ac0, (null)=) at function.rs:250:5 + frame #87: 0x00000001015b7334 ubuntu`std::sys::unix::thread::Thread::new::thread_start::hc8d37e25d4657683 [inlined] _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::ha50e0d33beaa94b5 at boxed.rs:2007:9 [opt] + frame #88: 0x00000001015b7328 ubuntu`std::sys::unix::thread::Thread::new::thread_start::hc8d37e25d4657683 [inlined] _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::h320b0db4bb8e0440 at boxed.rs:2007:9 [opt] + frame #89: 0x00000001015b7324 ubuntu`std::sys::unix::thread::Thread::new::thread_start::hc8d37e25d4657683 at thread.rs:108:17 [opt] + frame #90: 0x000000018c159034 libsystem_pthread.dylib`_pthread_start + 136