Skip to content

Node crashes when distance tries to read discarded state

Reported here: https://forum.duniter.org/t/mon-noeud-a-crashe/12525

If for any reason, the storage does not contain the key at parent_hash, the node must not crash anyway, and simply not publish result.

Stacktrace:

2024-09-29 04:56:52 💤 Idle (0 peers), best: #3253555 (0x53ff…ca6d), finalized #3253554 (0x06b2…8f43), ⬇ 7.7kiB/s ⬆ 3.5kiB/s    
2024-09-29 04:56:53 💔 Verification failed for block 0xc7466f0b945f9680eec78d2c78b56b6fd06dd4070679e3c1cd0c750f84f89483 received from (12D3KooWGvtbSM9SXMTAukT9zQo26QWegPcvP7pRhPU4HxK151Sx): "Header 0xc7466f0b945f9680eec78d2c78b56b6fd06dd4070679e3c1cd0c750f84f89483 rejected: too far in the future"    
2024-09-29 04:56:53 Report 12D3KooWGvtbSM9SXMTAukT9zQo26QWegPcvP7pRhPU4HxK151Sx: -536870912 to -2147483648. Reason: Block verification failed. Banned, disconnecting.    

====================

Version: 0.8.0-unknown

   0: sp_panic_handler::set::{{closure}}
   1: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
             at /rustc/8ace7ea1f7cbba7b4f031e66c54ca237a0d65de6/library/alloc/src/boxed.rs:2029:9
      std::panicking::rust_panic_with_hook
             at /rustc/8ace7ea1f7cbba7b4f031e66c54ca237a0d65de6/library/std/src/panicking.rs:785:13
   2: std::panicking::begin_panic_handler::{{closure}}
             at /rustc/8ace7ea1f7cbba7b4f031e66c54ca237a0d65de6/library/std/src/panicking.rs:659:13
   3: std::sys_common::backtrace::__rust_end_short_backtrace
             at /rustc/8ace7ea1f7cbba7b4f031e66c54ca237a0d65de6/library/std/src/sys_common/backtrace.rs:171:18
   4: rust_begin_unwind
             at /rustc/8ace7ea1f7cbba7b4f031e66c54ca237a0d65de6/library/std/src/panicking.rs:647:5
   5: core::panicking::panic_fmt
             at /rustc/8ace7ea1f7cbba7b4f031e66c54ca237a0d65de6/library/core/src/panicking.rs:72:14
   6: core::result::unwrap_failed
             at /rustc/8ace7ea1f7cbba7b4f031e66c54ca237a0d65de6/library/core/src/result.rs:1649:5
   7: dc_distance::create_distance_inherent_data_provider
   8: <F as sp_inherents::client_side::CreateInherentDataProviders<Block,ExtraArgs>>::create_inherent_data_providers::{{closure}}
   9: sc_consensus_slots::start_slot_worker::{{closure}}
  10: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll
  11: <sc_service::task_manager::prometheus_future::PrometheusFuture<T> as core::future::future::Future>::poll
  12: <futures_util::future::select::Select<A,B> as core::future::future::Future>::poll
  13: <tracing_futures::Instrumented<T> as core::future::future::Future>::poll
  14: tokio::runtime::context::runtime::enter_runtime
  15: tokio::runtime::task::core::Core<T,S>::poll
  16: tokio::runtime::task::harness::Harness<T,S>::poll
  17: tokio::runtime::blocking::pool::Inner::run
  18: std::sys_common::backtrace::__rust_begin_short_backtrace
  19: core::ops::function::FnOnce::call_once{{vtable.shim}}
  20: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
             at /rustc/8ace7ea1f7cbba7b4f031e66c54ca237a0d65de6/library/alloc/src/boxed.rs:2015:9
      <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
             at /rustc/8ace7ea1f7cbba7b4f031e66c54ca237a0d65de6/library/alloc/src/boxed.rs:2015:9
      std::sys::pal::unix::thread::Thread::new::thread_start
             at /rustc/8ace7ea1f7cbba7b4f031e66c54ca237a0d65de6/library/std/src/sys/pal/unix/thread.rs:108:17
  21: start_thread
  22: clone


Thread 'tokio-runtime-worker' panicked at 'CurrentIndex is Err: UnknownBlock("State already discarded for 0x53ff5f01f535c60e8d50550365d7a738bbc6bf6f5e3bdd78cee9bb20c04eca6d")', /root/client/distance/src/lib.rs:58

This is a bug. Please report it at:

	https://forum.duniter.org/
Edited by Hugo Trentesaux
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information