Open happybeing opened 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.
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.
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
Terminal output of safe files upload command which never completes