maidsafe / safe_network

72 stars 40 forks source link

Uploading using client API causes a panic in quinn_proto #1979

Open happybeing opened 1 month ago

happybeing commented 1 month ago

Testing a fix to the upload code (https://github.com/maidsafe/safe_network/issues/1957) I'm still having a problem uploading a directory using my client app. I tried two runs, both of which started uploading then exited with a panic. The stack traces are similar so I've only included the first below.

Note that my client has been working consistently many times without ever causing a crash (uploading the same and a lot of other data), using a local testnet built with the same autonomi dependencies.

In each case, after the upload the stated number of chunks seem to have been uploaded and the charge to the wallet seems reasonable.

I then tried doing the same upload using the safe client. This has not yet caused a panic, but is hanging possibly due to some corruption caused by the first two failures. I've included the output of that command, which never completes after the stack trace.

Stack trace after panic using my client app

DEBUG Hello from run()
Autonomi client initialising...
Connecting to the network using 50 peers
Uploading website from: "/home/mrh/src/safe-browser/aweb-sites/awv-type-site/v1-awv-type-site"
Chunking 19 files...
"/home/mrh/src/safe-browser/aweb-sites/awv-type-site/v1-awv-type-site" will be made public and linkable
Splitting and uploading "/home/mrh/src/safe-browser/aweb-sites/awv-type-site/v1-awv-type-site" into 76 chunks
⠠ [00:02:03] [##>-------------------------------------] 5/76                                              thread 'tokio-runtime-worker' panicked at /home/mrh/.cargo/registry/src/index.crates.io-6f17d22bba15001f/quinn-proto-0.11.2/src/connection/mtud.rs:392:9:
ACKs are delivered in order
stack backtrace:
   0: rust_begin_unwind
   1: core::panicking::panic_fmt
   2: quinn_proto::connection::mtud::BlackHoleDetector::on_non_probe_acked
   3: quinn_proto::connection::mtud::MtuDiscovery::on_acked
   4: quinn_proto::connection::Connection::on_ack_received
   5: quinn_proto::connection::Connection::process_payload
   6: quinn_proto::connection::Connection::process_decrypted_packet
   7: quinn_proto::connection::Connection::handle_packet
   8: quinn_proto::connection::Connection::handle_decode
   9: quinn_proto::connection::Connection::handle_event
  10: quinn::connection::State::process_conn_events
  11: <quinn::connection::ConnectionDriver as core::future::future::Future>::poll
  12: quinn::connection::Connecting::new::{{closure}}
  13: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll
  14: <core::pin::Pin<P> as core::future::future::Future>::poll
  15: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}
  16: tokio::runtime::task::core::Core<T,S>::poll
  17: tokio::runtime::task::harness::poll_future::{{closure}}
  18: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
  19: std::panicking::try::do_call
  20: __rust_try
  21: std::panicking::try
  22: std::panic::catch_unwind
  23: tokio::runtime::task::harness::poll_future
  24: tokio::runtime::task::harness::Harness<T,S>::poll_inner
  25: tokio::runtime::task::harness::Harness<T,S>::poll
  26: tokio::runtime::task::raw::poll
  27: tokio::runtime::task::raw::RawTask::poll
  28: tokio::runtime::task::LocalNotified<S>::run
  29: tokio::runtime::scheduler::multi_thread::worker::Context::run_task::{{closure}}
  30: tokio::runtime::scheduler::multi_thread::worker::Context::run_task
  31: tokio::runtime::scheduler::multi_thread::worker::Context::run
  32: tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}::{{closure}}
  33: tokio::runtime::context::scoped::Scoped<T>::set
  34: tokio::runtime::context::set_scheduler::{{closure}}
  35: std::thread::local::LocalKey<T>::try_with
  36: std::thread::local::LocalKey<T>::with
  37: tokio::runtime::context::set_scheduler
  38: tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}
  39: tokio::runtime::context::runtime::enter_runtime
  40: tokio::runtime::scheduler::multi_thread::worker::run
  41: tokio::runtime::scheduler::multi_thread::worker::Launch::launch::{{closure}}
  42: <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll
  43: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}
  44: tokio::runtime::task::core::Core<T,S>::poll
  45: tokio::runtime::task::harness::poll_future::{{closure}}
  46: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
  47: std::panicking::try::do_call
  48: __rust_try
  49: std::panicking::try
  50: std::panic::catch_unwind
  51: tokio::runtime::task::harness::poll_future
  52: tokio::runtime::task::harness::Harness<T,S>::poll_inner
  53: tokio::runtime::task::harness::Harness<T,S>::poll
  54: tokio::runtime::task::raw::poll
  55: tokio::runtime::task::raw::RawTask::poll
  56: tokio::runtime::task::UnownedTask<S>::run
  57: tokio::runtime::blocking::pool::Task::run
  58: tokio::runtime::blocking::pool::Inner::run
  59: tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}
⠤ [00:02:03] [##>-------------------------------------] 5/76                                              note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'tokio-runtime-worker' panicked at /home/mrh/.cargo/registry/src/index.crates.io-6f17d22bba15001f/quinn-0.11.1/src/mutex.rs:140:42:
called `Result::unwrap()` on an `Err` value: PoisonError { .. }
stack backtrace:
   0:     0x625c11ece8d5 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h1e1a1972118942ad
   1:     0x625c11efa7ab - core::fmt::write::hc090a2ffd6b28c4a
   2:     0x625c11eca94f - std::io::Write::write_fmt::h8898bac6ff039a23
   3:     0x625c11ece6ae - std::sys_common::backtrace::print::ha96650907276675e
   4:     0x625c11ecfb19 - std::panicking::default_hook::{{closure}}::h215c2a0a8346e0e0
   5:     0x625c11ecf85d - std::panicking::default_hook::h207342be97478370
   6:     0x625c11ed0023 - std::panicking::rust_panic_with_hook::hac8bdceee1e4fe2c
   7:     0x625c11ecff04 - std::panicking::begin_panic_handler::{{closure}}::h00d785e82757ce3c
   8:     0x625c11eced99 - std::sys_common::backtrace::__rust_end_short_backtrace::h1628d957bcd06996
   9:     0x625c11ecfc37 - rust_begin_unwind
  10:     0x625c11ef7ad3 - core::panicking::panic_fmt::hdc63834ffaaefae5
  11:     0x625c11ef80b6 - core::result::unwrap_failed::h82b551e0ff2b2176
  12:     0x625c1166d2f9 - quinn::mutex::non_tracking::Mutex<T>::lock::hab018bdf7073c701
  13:     0x625c11679a91 - <quinn::connection::ConnectionRef as core::ops::drop::Drop>::drop::h14ffc6359c59eb52
  14:     0x625c1165f781 - core::ptr::drop_in_place<quinn::connection::ConnectionRef>::h50b2208f4406f38a
  15:     0x625c1165f887 - core::ptr::drop_in_place<quinn::connection::ConnectionDriver>::h4a89e0f260f87d8c
  16:     0x625c11676706 - quinn::connection::Connecting::new::{{closure}}::h44381a8b9bff7466
  17:     0x625c11653362 - <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll::hbe9b5991ae125088
  18:     0x625c11666779 - <core::pin::Pin<P> as core::future::future::Future>::poll::h3a2bc3c1faf7363c
  19:     0x625c1166b70d - tokio::runtime::task::core::Core<T,S>::poll::{{closure}}::he5c909d4c61ffb3f
  20:     0x625c1166b3a6 - tokio::runtime::task::core::Core<T,S>::poll::he4cd16d71d5cf946
  21:     0x625c1165088e - tokio::runtime::task::harness::poll_future::{{closure}}::hea8c21e2680888e1
  22:     0x625c11662f01 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hde2d0753ec370a6e
  23:     0x625c11663db5 - std::panicking::try::do_call::hd0625661726600c5
  24:     0x625c1166750b - __rust_try
  25:     0x625c11663728 - std::panicking::try::h9a0e5ed370953ba4
  26:     0x625c116630ce - std::panic::catch_unwind::h374e5b8f234cbf38
  27:     0x625c1164fe78 - tokio::runtime::task::harness::poll_future::hd205e0abb40f48ec
  28:     0x625c11650c86 - tokio::runtime::task::harness::Harness<T,S>::poll_inner::h55ed6d7bf1305024
  29:     0x625c11651827 - tokio::runtime::task::harness::Harness<T,S>::poll::h12fd17cefe80d077
  30:     0x625c11674620 - tokio::runtime::task::raw::poll::hd73d594f0c579448
  31:     0x625c11a5f4eb - tokio::runtime::task::raw::RawTask::poll::h31f61e18c6b3cdee
  32:     0x625c11a4d085 - tokio::runtime::task::LocalNotified<S>::run::hb2e1e2c46bc896d5
  33:     0x625c11a7a087 - tokio::runtime::scheduler::multi_thread::worker::Context::run_task::{{closure}}::h35c9f683089d5585
  34:     0x625c11a798b6 - tokio::runtime::scheduler::multi_thread::worker::Context::run_task::he43e5451be607460
  35:     0x625c11a7914b - tokio::runtime::scheduler::multi_thread::worker::Context::run::hbc0ff74a393d198f
  36:     0x625c11a78bd4 - tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}::{{closure}}::h19aa6395458652ef
  37:     0x625c11a4bccf - tokio::runtime::context::scoped::Scoped<T>::set::h3cbc3a6b7baf1f7e
  38:     0x625c11a72ef1 - tokio::runtime::context::set_scheduler::{{closure}}::h5bb1772820c8868f
  39:     0x625c11a510a6 - std::thread::local::LocalKey<T>::try_with::ha42e2d0caefa55e4
  40:     0x625c11a50267 - std::thread::local::LocalKey<T>::with::h337455c5b5d36f5f
  41:     0x625c11a72e82 - tokio::runtime::context::set_scheduler::h6f508d2db08cdbc1
  42:     0x625c11a78ade - tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}::hb80e1de1b73e4d67
  43:     0x625c11a45f80 - tokio::runtime::context::runtime::enter_runtime::h3709ff8e88c47cce
  44:     0x625c11a7886e - tokio::runtime::scheduler::multi_thread::worker::run::hb10c0c202f5942ac
  45:     0x625c11a786e7 - tokio::runtime::scheduler::multi_thread::worker::Launch::launch::{{closure}}::h6feb6605d8dc8d0f
  46:     0x625c11a4d3c4 - <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll::h780ab449011ff700
  47:     0x625c11a483dc - tokio::runtime::task::core::Core<T,S>::poll::{{closure}}::h47bd76cbd039e664
  48:     0x625c11a480a6 - tokio::runtime::task::core::Core<T,S>::poll::h7e9aad058eae1132
  49:     0x625c11a3ae6e - tokio::runtime::task::harness::poll_future::{{closure}}::hb76c91b67aa4fae6
  50:     0x625c11a604f1 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hd9609184c68d965b
  51:     0x625c11a4f655 - std::panicking::try::do_call::h26fea6b6a3ae0dad
  52:     0x625c11a4ff5b - __rust_try
  53:     0x625c11a4f5b8 - std::panicking::try::hf8cb8d5e5b89b964
  54:     0x625c11a49b4e - std::panic::catch_unwind::hba809d5234d0a7e9
  55:     0x625c11a3a928 - tokio::runtime::task::harness::poll_future::h7fc918eec5dea542
  56:     0x625c11a399b6 - tokio::runtime::task::harness::Harness<T,S>::poll_inner::h770dcd3177fb6b77
  57:     0x625c11a396b7 - tokio::runtime::task::harness::Harness<T,S>::poll::h2e53e3203bb54177
  58:     0x625c11a5f740 - tokio::runtime::task::raw::poll::h5e5a0e6ca2acee5f
  59:     0x625c11a5f4eb - tokio::runtime::task::raw::RawTask::poll::h31f61e18c6b3cdee
  60:     0x625c11a4d13d - tokio::runtime::task::UnownedTask<S>::run::h543ff1b3686549e8
  61:     0x625c11a629b6 - tokio::runtime::blocking::pool::Task::run::hdb3fa5a8a06294b2
  62:     0x625c11a64e1e - tokio::runtime::blocking::pool::Inner::run::h0db59ded1e7185b3
  63:     0x625c11a64b54 - tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}::h83d3ea80ef24ae11
  64:     0x625c11a60666 - std::sys_common::backtrace::__rust_begin_short_backtrace::h6186fae60627be57
  65:     0x625c11a99502 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h250944a123a8f9e3
  66:     0x625c11a60422 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h5cc984741e50c776
  67:     0x625c11a4f6c2 - std::panicking::try::do_call::h30237b129bd6a60d
  68:     0x625c11a4ff5b - __rust_try
  69:     0x625c11a4f4c7 - std::panicking::try::hbfb76301519326e3
  70:     0x625c11a99216 - std::thread::Builder::spawn_unchecked_::{{closure}}::hfe78c157352191d1
  71:     0x625c11a66c67 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h53a149a902772fe7
  72:     0x625c11ed384b - std::sys::pal::unix::thread::Thread::new::thread_start::h522bc89a54da820a
  73:     0x7915e389ca94 - start_thread
                               at ./nptl/pthread_create.c:447:8
  74:     0x7915e3929c3c - __GI___clone3
                               at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  75:                0x0 - <unknown>
thread 'tokio-runtime-worker' panicked at library/core/src/panicking.rs:228:5:
panic in a destructor during cleanup
thread caused non-unwinding panic. aborting.

Terminal output of safe files upload command which never completes

safe files upload -p /home/mrh/src/safe-browser/aweb-sites/awv-type-site/v1-awv-type-site
Logging to directory: "/home/mrh/.local/share/safe/client/logs/log_2024-07-17_15-32-23"
safe client built with git version: b1e0cc9 / stable-2024-07-08 / b1e0cc9 / 2024-07-08
Instantiating a SAFE client...
Connecting to the network with 50 peers
🔗 Connected to the Network                                                                               "/home/mrh/src/safe-browser/aweb-sites/awv-type-site/v1-awv-type-site" will be made public and linkable
Splitting and uploading "/home/mrh/src/safe-browser/aweb-sites/awv-type-site/v1-awv-type-site" into 54 chunks
⠋ [00:03:40] [##>-------------------------------------] 3/54                                              Pre-Unconfirmed transactions exist, sending again after 30 seconds...
It's safe to terminate the work, but do remember to retain the unconfirmed_spend file during wallet update.
Otherwise, you are in risk to make the wallet corrupted.
⠤ [00:04:10] [##>-------------------------------------] 3/54                                              Unconfirmed Spend SpendAddress(087500) has no copy in the network yet Network(GetRecordError(RecordNotFound)) !
⠖ [00:04:14] [##>-------------------------------------] 3/54                                              Parent SpendAddress(08f411) of unconfirmed Spend SpendAddress(087500) has no copy in the network yet Network(GetRecordError(RecordNotFound)) !
Cann't find confirmed spend of SpendAddress(08f411)
⠉ [00:04:15] [##>-------------------------------------] 3/54                                              Parent SpendAddress(7d7adb) of unconfirmed Spend SpendAddress(087500) is find having at least one copy in the network !
⠈ [00:06:49] [##>-------------------------------------] 3/54                                              Pre-Unconfirmed transactions exist, sending again after 30 seconds...
It's safe to terminate the work, but do remember to retain the unconfirmed_spend file during wallet update.
Otherwise, you are in risk to make the wallet corrupted.
⠁ [00:07:30] [##>-------------------------------------] 3/54                                              Unconfirmed Spend SpendAddress(087500) has no copy in the network yet Network(GetRecordError(RecordNotFound)) !
⠓ [00:07:38] [##>-------------------------------------] 3/54                                              Parent SpendAddress(08f411) of unconfirmed Spend SpendAddress(087500) has no copy in the network yet Network(GetRecordError(RecordNotFound)) !
Cann't find confirmed spend of SpendAddress(08f411)
⠂ [00:07:39] [##>-------------------------------------] 3/54                                              Parent SpendAddress(7d7adb) of unconfirmed Spend SpendAddress(087500) is find having at least one copy in the network !
⠁ [00:10:24] [##>-------------------------------------] 3/54                                              Pre-Unconfirmed transactions exist, sending again after 30 seconds...
It's safe to terminate the work, but do remember to retain the unconfirmed_spend file during wallet update.
Otherwise, you are in risk to make the wallet corrupted.
⠖ [00:10:55] [##>-------------------------------------] 3/54                                              Unconfirmed Spend SpendAddress(087500) has no copy in the network yet Network(GetRecordError(RecordNotFound)) !
⠂ [00:11:00] [##>-------------------------------------] 3/54                                              Parent SpendAddress(08f411) of unconfirmed Spend SpendAddress(087500) has no copy in the network yet Network(GetRecordError(RecordNotFound)) !
Cann't find confirmed spend of SpendAddress(08f411)
⠠ [00:11:01] [##>-------------------------------------] 3/54                                              Parent SpendAddress(7d7adb) of unconfirmed Spend SpendAddress(087500) is find having at least one copy in the network !
⠖ [00:13:56] [##>-------------------------------------] 3/54                                              Pre-Unconfirmed transactions exist, sending again after 30 seconds...
It's safe to terminate the work, but do remember to retain the unconfirmed_spend file during wallet update.
Otherwise, you are in risk to make the wallet corrupted.
⠂ [00:14:26] [##>-------------------------------------] 3/54                                              Unconfirmed Spend SpendAddress(087500) has no copy in the network yet Network(GetRecordError(RecordNotFound)) !
⠒ [00:14:32] [##>-------------------------------------] 3/54                                              Parent SpendAddress(08f411) of unconfirmed Spend SpendAddress(087500) has no copy in the network yet Network(GetRecordError(RecordNotFound)) !
Cann't find confirmed spend of SpendAddress(08f411)
⠠ [00:14:33] [##>-------------------------------------] 3/54                                              Parent SpendAddress(7d7adb) of unconfirmed Spend SpendAddress(087500) is find having at least one copy in the network !
⠚ [00:17:06] [##>-------------------------------------] 3/54                                              ^C
happybeing commented 1 month ago

Switching to upload a different directory (with the safe client - see output below) also fails to do anything so having experienced the panic/crash it looks like the wallet is no longer useable.

Is there any way out of this other than wiping the wallet and the nanos in it?

safe files upload -p /home/mrh/src/safe-browser/aweb-sites/test-page-sites/test-page-main/v1-test-page-main/
Logging to directory: "/home/mrh/.local/share/safe/client/logs/log_2024-07-17_16-28-15"
safe client built with git version: b1e0cc9 / stable-2024-07-08 / b1e0cc9 / 2024-07-08
Instantiating a SAFE client...
Connecting to the network with 50 peers
🔗 Connected to the Network                                                                               Chunking 6 files...
"/home/mrh/src/safe-browser/aweb-sites/test-page-sites/test-page-main/v1-test-page-main/" will be made public and linkable
Splitting and uploading "/home/mrh/src/safe-browser/aweb-sites/test-page-sites/test-page-main/v1-test-page-main/" into 24 chunks
⠦ [00:00:33] [----------------------------------------] 0/24                                              Pre-Unconfirmed transactions exist, sending again after 30 seconds...
It's safe to terminate the work, but do remember to retain the unconfirmed_spend file during wallet update.
Otherwise, you are in risk to make the wallet corrupted.
⠉ [00:00:54] [----------------------------------------] 0/24                                              ^C

@mickvandijke please let the team know I'm still blocked after the earlier fix. Thanks.

happybeing commented 1 month ago

FYI:

Here is the terminal output from my client using the APIs. First to get a register, read the address of some metadata, retrieve that, and finally having extracted a datamap address from that, tries to download a self-encrypted file (of about 1k bytes). It crashes the API while in FilesDownload::download_from():

DEBUG Hello from run()
CLI specified --website-version None
12:18:16 [vite-plugin-svelte] /home/mrh/src/safe-browser/awe-main/src/routes/+page.svelte:242:0 Unused CSS selector ".button"
12:18:16 [vite-plugin-svelte] /home/mrh/src/safe-browser/awe-main/src/routes/+page.svelte:247:0 Unused CSS selector ".button"
TTTTTTTT tauri::cmd on_is_local_network() returning: false
get_version_requested() returning 0
TTTTTTTT tauri::cmd on_get_version_requested() returning 0
TTTTTTTT tauri::cmd on_start_get_cli_url() returning: 
get_version_max() returning 0
set_next_load_is_address_bar() set to true
TTTTTTTT on_prep_to_load_from_address_bar(0) returning version: 0
set_version_requested() set to 0
get_version_requested() returning 0
DEBUG Hello from handle_protocol_awv() version_requested Some(0)
DEBUG url 'awv://8bccb93dcd024bffe48fefa058b26b16727f817f5389bbd59b33bd89b990147eb635ed5e571ac4bf2f1e90d56ca9f59610b47695b8dd98d703c385c528a13306a1ea480b8c877d0c99f7231b29d28848/?v=0'
DEBUG parse_url_string(awv://8bccb93dcd024bffe48fefa058b26b16727f817f5389bbd59b33bd89b990147eb635ed5e571ac4bf2f1e90d56ca9f59610b47695b8dd98d703c385c528a13306a1ea480b8c877d0c99f7231b29d28848/?v=0
DEBUG   protocol: awv://
DEBUG   host: 8bccb93dcd024bffe48fefa058b26b16727f817f5389bbd59b33bd89b990147eb635ed5e571ac4bf2f1e90d56ca9f59610b47695b8dd98d703c385c528a13306a1ea480b8c877d0c99f7231b29d28848
DEBUG   path: /
DEBUG   params: {"v": "0"}
get_next_load_is_address_bar() returning true
set_next_load_is_address_bar() set to false
get_save_next_site_address() returning true
get_last_site_address() returning 
DEBUG loading_new_page_via_address_bar: true
DEBUG loading_new_page_via_page       : false
DEBUG loading_resource                : false
DEBUG xor_host_differs_from_page      : true
DEBUG version_requested               : Some(0)
DEBUG (host_xor_string, resource_path): (8bccb93dcd024bffe48fefa058b26b16727f817f5389bbd59b33bd89b990147eb635ed5e571ac4bf2f1e90d56ca9f59610b47695b8dd98d703c385c528a13306a1ea480b8c877d0c99f7231b29d28848, /)'
Autonomi client initialising...
Connecting to the network using 50 peers
get_version_loaded() returning 0
DEBUG lookup_resource_for_website_version() version Some(0)
DEBUG versions_xor_name: 8bccb9(699576(01101001)..)
DEBUG resource_path    : /
VersionsRegister::sync() - this can take a while...
VersionsRegister::sync() - ...done.
DEBUG fetch_version_metadata() self.site_version.is_some(): false
DEBUG XXXXXX get_metadata_address_from_register(version: 1)
DEBUG XXXXXX get_version_entry(version: 1)
set_version_max() set to 1
DEBUG get_website_metadata_from_network() at af14253523dc4cc4fd61897359a74e3cbd99b7cb3e007bed6c5bdc65e97c4846
DEBUG autonomi_get_file()
DEBUG calling files_download.download_from()
DEBUG Ok() return
Retrieved 124 bytes
set_version_loaded() set to 1
Splitting path '/'
...into '/' and ''
Looking for resource at '/'
Retrying for index file in new_resource_path '/'
DEBUG looking for a default INDEX file, one of ["index.html", "index.htm"]
Fetching xor data: e4679c00430b7a43ff80893a7fdcdc959e576e4ffd3a7b7c5a757ac03deab4f7
DEBUG autonomi_get_file()
DEBUG calling files_download.download_from()
thread 'tokio-runtime-worker' panicked at /home/mrh/.cargo/registry/src/index.crates.io-6f17d22bba15001f/quinn-proto-0.11.2/src/connection/mtud.rs:392:9:
ACKs are delivered in order
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'tokio-runtime-worker' panicked at /home/mrh/.cargo/registry/src/index.crates.io-6f17d22bba15001f/quinn-0.11.1/src/mutex.rs:140:42:
called `Result::unwrap()` on an `Err` value: PoisonError { .. }
stack backtrace:
   0:     0x5e8edb4f38d5 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h1e1a1972118942ad
   1:     0x5e8edb51f7ab - core::fmt::write::hc090a2ffd6b28c4a
   2:     0x5e8edb4ef94f - std::io::Write::write_fmt::h8898bac6ff039a23
   3:     0x5e8edb4f36ae - std::sys_common::backtrace::print::ha96650907276675e
   4:     0x5e8edb4f4b19 - std::panicking::default_hook::{{closure}}::h215c2a0a8346e0e0
   5:     0x5e8edb4f485d - std::panicking::default_hook::h207342be97478370
   6:     0x5e8edb4f5023 - std::panicking::rust_panic_with_hook::hac8bdceee1e4fe2c
   7:     0x5e8edb4f4f04 - std::panicking::begin_panic_handler::{{closure}}::h00d785e82757ce3c
   8:     0x5e8edb4f3d99 - std::sys_common::backtrace::__rust_end_short_backtrace::h1628d957bcd06996
   9:     0x5e8edb4f4c37 - rust_begin_unwind
  10:     0x5e8edb51cad3 - core::panicking::panic_fmt::hdc63834ffaaefae5
  11:     0x5e8edb51d0b6 - core::result::unwrap_failed::h82b551e0ff2b2176
  12:     0x5e8edac922f9 - quinn::mutex::non_tracking::Mutex<T>::lock::hab018bdf7073c701
  13:     0x5e8edac9ea91 - <quinn::connection::ConnectionRef as core::ops::drop::Drop>::drop::h14ffc6359c59eb52
  14:     0x5e8edac84781 - core::ptr::drop_in_place<quinn::connection::ConnectionRef>::h50b2208f4406f38a
  15:     0x5e8edac84887 - core::ptr::drop_in_place<quinn::connection::ConnectionDriver>::h4a89e0f260f87d8c
  16:     0x5e8edac9b706 - quinn::connection::Connecting::new::{{closure}}::h44381a8b9bff7466
  17:     0x5e8edac78362 - <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll::hbe9b5991ae125088
  18:     0x5e8edac8b779 - <core::pin::Pin<P> as core::future::future::Future>::poll::h3a2bc3c1faf7363c
  19:     0x5e8edac9070d - tokio::runtime::task::core::Core<T,S>::poll::{{closure}}::he5c909d4c61ffb3f
  20:     0x5e8edac903a6 - tokio::runtime::task::core::Core<T,S>::poll::he4cd16d71d5cf946
  21:     0x5e8edac7588e - tokio::runtime::task::harness::poll_future::{{closure}}::hea8c21e2680888e1
  22:     0x5e8edac87f01 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hde2d0753ec370a6e
  23:     0x5e8edac88db5 - std::panicking::try::do_call::hd0625661726600c5
  24:     0x5e8edac8c50b - __rust_try
  25:     0x5e8edac88728 - std::panicking::try::h9a0e5ed370953ba4
  26:     0x5e8edac880ce - std::panic::catch_unwind::h374e5b8f234cbf38
  27:     0x5e8edac74e78 - tokio::runtime::task::harness::poll_future::hd205e0abb40f48ec
  28:     0x5e8edac75c86 - tokio::runtime::task::harness::Harness<T,S>::poll_inner::h55ed6d7bf1305024
  29:     0x5e8edac76827 - tokio::runtime::task::harness::Harness<T,S>::poll::h12fd17cefe80d077
  30:     0x5e8edac99620 - tokio::runtime::task::raw::poll::hd73d594f0c579448
  31:     0x5e8edb0844eb - tokio::runtime::task::raw::RawTask::poll::h31f61e18c6b3cdee
  32:     0x5e8edb072085 - tokio::runtime::task::LocalNotified<S>::run::hb2e1e2c46bc896d5
  33:     0x5e8edb09f087 - tokio::runtime::scheduler::multi_thread::worker::Context::run_task::{{closure}}::h35c9f683089d5585
  34:     0x5e8edb09e8b6 - tokio::runtime::scheduler::multi_thread::worker::Context::run_task::he43e5451be607460
  35:     0x5e8edb09df71 - tokio::runtime::scheduler::multi_thread::worker::Context::run::hbc0ff74a393d198f
  36:     0x5e8edb09dbd4 - tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}::{{closure}}::h19aa6395458652ef
  37:     0x5e8edb070ccf - tokio::runtime::context::scoped::Scoped<T>::set::h3cbc3a6b7baf1f7e
  38:     0x5e8edb097ef1 - tokio::runtime::context::set_scheduler::{{closure}}::h5bb1772820c8868f
  39:     0x5e8edb0760a6 - std::thread::local::LocalKey<T>::try_with::ha42e2d0caefa55e4
  40:     0x5e8edb075267 - std::thread::local::LocalKey<T>::with::h337455c5b5d36f5f
  41:     0x5e8edb097e82 - tokio::runtime::context::set_scheduler::h6f508d2db08cdbc1
  42:     0x5e8edb09dade - tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}::hb80e1de1b73e4d67
  43:     0x5e8edb06af80 - tokio::runtime::context::runtime::enter_runtime::h3709ff8e88c47cce
  44:     0x5e8edb09d86e - tokio::runtime::scheduler::multi_thread::worker::run::hb10c0c202f5942ac
  45:     0x5e8edb09d6e7 - tokio::runtime::scheduler::multi_thread::worker::Launch::launch::{{closure}}::h6feb6605d8dc8d0f
  46:     0x5e8edb0723c4 - <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll::h780ab449011ff700
  47:     0x5e8edb06d3dc - tokio::runtime::task::core::Core<T,S>::poll::{{closure}}::h47bd76cbd039e664
  48:     0x5e8edb06d0a6 - tokio::runtime::task::core::Core<T,S>::poll::h7e9aad058eae1132
  49:     0x5e8edb05fe6e - tokio::runtime::task::harness::poll_future::{{closure}}::hb76c91b67aa4fae6
  50:     0x5e8edb0854f1 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hd9609184c68d965b
  51:     0x5e8edb074655 - std::panicking::try::do_call::h26fea6b6a3ae0dad
  52:     0x5e8edb074f5b - __rust_try
  53:     0x5e8edb0745b8 - std::panicking::try::hf8cb8d5e5b89b964
  54:     0x5e8edb06eb4e - std::panic::catch_unwind::hba809d5234d0a7e9
  55:     0x5e8edb05f928 - tokio::runtime::task::harness::poll_future::h7fc918eec5dea542
  56:     0x5e8edb05e9b6 - tokio::runtime::task::harness::Harness<T,S>::poll_inner::h770dcd3177fb6b77
  57:     0x5e8edb05e6b7 - tokio::runtime::task::harness::Harness<T,S>::poll::h2e53e3203bb54177
  58:     0x5e8edb084740 - tokio::runtime::task::raw::poll::h5e5a0e6ca2acee5f
  59:     0x5e8edb0844eb - tokio::runtime::task::raw::RawTask::poll::h31f61e18c6b3cdee
  60:     0x5e8edb07213d - tokio::runtime::task::UnownedTask<S>::run::h543ff1b3686549e8
  61:     0x5e8edb0879b6 - tokio::runtime::blocking::pool::Task::run::hdb3fa5a8a06294b2
  62:     0x5e8edb089e1e - tokio::runtime::blocking::pool::Inner::run::h0db59ded1e7185b3
  63:     0x5e8edb089b54 - tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}::h83d3ea80ef24ae11
  64:     0x5e8edb085666 - std::sys_common::backtrace::__rust_begin_short_backtrace::h6186fae60627be57
  65:     0x5e8edb0be502 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h250944a123a8f9e3
  66:     0x5e8edb085422 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h5cc984741e50c776
  67:     0x5e8edb0746c2 - std::panicking::try::do_call::h30237b129bd6a60d
  68:     0x5e8edb074f5b - __rust_try
  69:     0x5e8edb0744c7 - std::panicking::try::hbfb76301519326e3
  70:     0x5e8edb0be216 - std::thread::Builder::spawn_unchecked_::{{closure}}::hfe78c157352191d1
  71:     0x5e8edb08bc67 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h53a149a902772fe7
  72:     0x5e8edb4f884b - std::sys::pal::unix::thread::Thread::new::thread_start::h522bc89a54da820a
  73:     0x7c9b0129ca94 - start_thread
                               at ./nptl/pthread_create.c:447:8
  74:     0x7c9b01329c3c - __GI___clone3
                               at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  75:                0x0 - <unknown>
thread 'tokio-runtime-worker' panicked at library/core/src/panicking.rs:228:5:
panic in a destructor during cleanup
thread caused non-unwinding panic. aborting.