Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Block prepare storage changes error #475

Closed
hackfisher opened this issue Jul 19, 2020 · 5 comments
Closed

Block prepare storage changes error #475

hackfisher opened this issue Jul 19, 2020 · 5 comments
Assignees

Comments

@hackfisher
Copy link
Contributor

Version: 0.6.1-4478502-x86_64-linux-gnu

   0: sp_panic_handler::set::{{closure}}
   1: std::panicking::rust_panic_with_hook
             at /rustc/fe10f1a49f5ca46e57261b95f46f519523f418fe/src/libstd/panicking.rs:490
   2: std::panicking::begin_panic
   3: frame_executive::Executive<System,Block,Context,UnsignedValidator,AllModules,COnRuntimeUpgrade>::execute_block
   4: <crab_runtime::Runtime as sp_api::runtime_decl_for_Core::Core<sp_runtime::generic::block::Block<sp_runtime::generic::header::Header<u32,sp_runtime::traits::BlakeTwo256>,sp_runtime::generic::unchecked_extrinsic::UncheckedExtrinsic<<<sp_runtime::MultiSignature as sp_runtime::traits::Verify>::Signer as sp_runtime::traits::IdentifyAccount>::AccountId,crab_runtime::Call,sp_runtime::MultiSignature,(frame_system::CheckSpecVersion<crab_runtime::Runtime>,frame_system::CheckTxVersion<crab_runtime::Runtime>,frame_system::CheckGenesis<crab_runtime::Runtime>,frame_system::CheckEra<crab_runtime::Runtime>,frame_system::CheckNonce<crab_runtime::Runtime>,frame_system::CheckWeight<crab_runtime::Runtime>,pallet_transaction_payment::ChargeTransactionPayment<crab_runtime::Runtime>,pallet_grandpa::equivocation::ValidateEquivocationReport<crab_runtime::Runtime>,darwinia_eth_relay::CheckEthRelayHeaderHash<crab_runtime::Runtime>)>>>>::execute_block
   5: sp_api::runtime_decl_for_Core::execute_block_native_call_generator::{{closure}}
   6: std::thread::local::LocalKey<T>::with
   7: sc_executor::native_executor::WasmExecutor::with_instance::{{closure}}
   8: sc_executor::wasm_runtime::RuntimeCache::with_instance
   9: <sc_executor::native_executor::NativeExecutor<D> as sp_core::traits::CodeExecutor>::call
  10: sp_state_machine::StateMachine<B,H,N,Exec>::execute_aux
  11: sp_state_machine::StateMachine<B,H,N,Exec>::execute_using_consensus_failure_handler
  12: <sc_service::client::call_executor::LocalCallExecutor<B,E> as sc_client_api::call_executor::CallExecutor<Block>>::contextual_call
  13: <sc_service::client::client::Client<B,E,Block,RA> as sp_api::CallApiAt<Block>>::call_api_at
  14: sp_api::runtime_decl_for_Core::execute_block_call_api_at
  15: sp_api::Core::execute_block
  16: <&sc_service::client::client::Client<B,E,Block,RA> as sp_consensus::block_import::BlockImport<Block>>::import_block
  17: <sc_finality_grandpa::import::GrandpaBlockImport<BE,Block,Client,SC> as sp_consensus::block_import::BlockImport<Block>>::import_block
  18: <sc_consensus_babe::BabeBlockImport<Block,Client,Inner> as sp_consensus::block_import::BlockImport<Block>>::import_block
  19: sp_consensus::import_queue::import_single_block
  20: <futures_util::future::poll_fn::PollFn<F> as core::future::future::Future>::poll
  21: <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll
  22: <futures_util::future::future::flatten::Flatten<Fut,<Fut as core::future::future::Future>::Output> as core::future::future::Future>::poll
  23: <futures_util::future::poll_fn::PollFn<F> as core::future::future::Future>::poll
  24: <sc_service::task_manager::prometheus_future::PrometheusFuture<T> as core::future::future::Future>::poll
  25: <futures_util::future::select::Select<A,B> as core::future::future::Future>::poll
  26: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
  27: futures_executor::local_pool::block_on
  28: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
  29: tokio::runtime::task::core::Core<T,S>::poll
  30: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
  31: tokio::runtime::task::raw::poll
  32: tokio::runtime::blocking::pool::Inner::run
  33: tokio::runtime::context::enter
    34: std::sys_common::backtrace::__rust_begin_short_backtrace
    35: core::ops::function::FnOnce::call_once{{vtable.shim}}
    36: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
               at /rustc/fe10f1a49f5ca46e57261b95f46f519523f418fe/src/liballoc/boxed.rs:1076
        <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
               at /rustc/fe10f1a49f5ca46e57261b95f46f519523f418fe/src/liballoc/boxed.rs:1076
        std::sys::unix::thread::Thread::new::thread_start
               at /rustc/fe10f1a49f5ca46e57261b95f46f519523f418fe/src/libstd/sys/unix/thread.rs:87
    37: start_thread
    38: clone


  Thread 'tokio-runtime-worker' panicked at 'Storage root must match that calculated.', /rustc/fe10f1a49f5ca46e57261b95f46f519523f418fe/src/libstd/macros.rs:13

  This is a bug. Please report it at:

          /~https://github.com/darwinia-network/darwinia/issues/new

  2020-07-19 13:08:31 Block prepare storage changes error:
  Execution(RuntimePanicked("Storage root must match that calculated."))
  2020-07-19 13:08:31 � Error importing block 0x87118e0a0978745052eae5c37f61934c94605f43a077d471eb1b6ad1c34e5e2c: Err(Other(ClientImport("Import failed: Execution: Runtime panicked: Storage root must match that calculated.")))
@hackfisher
Copy link
Contributor Author

Can cancel the slash using cancel_deferred_slash

/// A super-majority of the council can cancel the slash.
	type SlashCancelOrigin =
		pallet_collective::EnsureProportionAtLeast<_1, _2, AccountId, CouncilCollective>;

@hackfisher
Copy link
Contributor Author

hackfisher commented Jul 19, 2020

There are block import errors for 0.6.1 nodes

0x87118e0a0978745052eae5c37f61934c94605f43a077d471eb1b6ad1c34e5e2c is produced by FEILUN|5EjfiJBByV(0.6.1) and 0.6.1 node(EVA) have block import errors with it.

0x3218421fcd9c6d46488cc99adf9e644f59acc546cd26ef252039fdcf2f138de5 is procuced by
5D5YjEhytVbcFoVtg3WwgP6ArkYWJweC2VVqoenXDwNP1Trr(?) and 0.6.1 node will have block import errors with it.

long_text_2020-07-19-13-19-21.txt

One question is why 0.6.1 stopped proceeding after import error and 0.6.3 continue producing after that?

@freehere107
Copy link
Contributor

Version: 0.6.1-4478502-x86_64-linux-gnu

0: sp_panic_handler::set::{{closure}}
1: std::panicking::rust_panic_with_hook
at rustc/c20d7eecbc0928b57da8fe30b2ef8528e2bdd5be/src/libstd/panicking.rs:474
2: std::panicking::begin_panic
3: frame_executive::Executive<System,Block,Context,UnsignedValidator,AllModules,COnRuntimeUpgrade>::execute_block
4: <crab_runtime::Runtime as sp_api::runtime_decl_for_Core::Core<sp_runtime::generic::block::Block<sp_runtime::generic::header::Header<u32,sp_runtime::traits::BlakeTwo256>,sp_runtime::generic::unchecked_extrinsic::UncheckedExtrinsic<<<sp_runtime::MultiSignature as sp_runtime::traits::Verify>::Signer as sp_runtime::traits::IdentifyAccount>::AccountId,crab_runtime::Call,sp_runtime::MultiSignature,(frame_system::CheckSpecVersion<crab_runtime::Runtime>, frame_system::CheckTxVersion<crab_runtime::Runtime>, frame_system::CheckGenesis<crab_runtime::Runtime>, frame_system::CheckEra<crab_runtime::Runtime>, frame_system::CheckNonce<crab_runtime::Runtime>, frame_system::CheckWeight<crab_runtime::Runtime>, pallet_transaction_payment::ChargeTransactionPayment<crab_runtime::Runtime>, pallet_grandpa::equivocation::ValidateEquivocationReport<crab_runtime::Runtime>, darwinia_eth_relay::CheckEthRelayHeaderHash<crab_runtime::Runtime>)>>>>::execute_block
5: std::panicking::try::do_call
6: __rust_maybe_catch_panic
at rustc/c20d7eecbc0928b57da8fe30b2ef8528e2bdd5be/src/libpanic_unwind/lib.rs:86
7: std::thread::local::LocalKey::with
8: sc_executor::native_executor::WasmExecutor::with_instance::{{closure}}
9: sc_executor::wasm_runtime::RuntimeCache::with_instance
10: <sc_executor::native_executor::NativeExecutor as sp_core::traits::CodeExecutor>::call
11: sp_state_machine::StateMachine<B,H,N,Exec>::execute_aux
12: sp_state_machine::StateMachine<B,H,N,Exec>::execute_using_consensus_failure_handler
13: <sc_service::client::call_executor::LocalCallExecutor<B,E> as sc_client_api::call_executor::CallExecutor>::contextual_call
14: <sc_service::client::client::Client<B,E,Block,RA> as sp_api::CallApiAt>::call_api_at
15: sp_api::runtime_decl_for_Core::execute_block_call_api_at
16: sp_api::Core::execute_block
17: <&sc_service::client::client::Client<B,E,Block,RA> as sp_consensus::block_import::BlockImport>::import_block
18: <sc_finality_grandpa::import::GrandpaBlockImport<BE,Block,Client,SC> as sp_consensus::block_import::BlockImport>::import_block
19: <sc_consensus_babe::BabeBlockImport<Block,Client,Inner> as sp_consensus::block_import::BlockImport>::import_block
20: sp_consensus::import_queue::import_single_block
21: <futures_util::future::poll_fn::PollFn as core::future::future::Future>::poll
22: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll
23: <futures_util::future::future::Then<Fut1,Fut2,F> as core::future::future::Future>::poll
24: <futures_util::future::poll_fn::PollFn as core::future::future::Future>::poll
25: std::panicking::try::do_call
26: __rust_maybe_catch_panic
at rustc/c20d7eecbc0928b57da8fe30b2ef8528e2bdd5be/src/libpanic_unwind/lib.rs:86
27: <futures_util::future::select::Select<A,B> as core::future::future::Future>::poll
28: <std::future::GenFuture as core::future::future::Future>::poll
29: std::thread::local::LocalKey::with
30: futures_executor::local_pool::block_on
31: tokio::runtime::task::core::Core<T,S>::poll
32: <std::panic::AssertUnwindSafe as core::ops::function::FnOnce<()>>::call_once
33: std::panicking::try::do_call
34: __rust_maybe_catch_panic
at rustc/c20d7eecbc0928b57da8fe30b2ef8528e2bdd5be/src/libpanic_unwind/lib.rs:86
35: tokio::runtime::task::raw::poll
36: tokio::runtime::blocking::pool::Inner::run
37: tokio::runtime::context::enter
38: std::sys_common::backtrace::__rust_begin_short_backtrace
39: std::panicking::try::do_call
40: __rust_maybe_catch_panic
at rustc/c20d7eecbc0928b57da8fe30b2ef8528e2bdd5be/src/libpanic_unwind/lib.rs:86
41: core::ops::function::FnOnce::call_once{{vtable.shim}}
42: <alloc::boxed::Box as core::ops::function::FnOnce>::call_once
at rustc/c20d7eecbc0928b57da8fe30b2ef8528e2bdd5be/src/liballoc/boxed.rs:1017
43: <alloc::boxed::Box as core::ops::function::FnOnce>::call_once
at rustc/c20d7eecbc0928b57da8fe30b2ef8528e2bdd5be/src/liballoc/boxed.rs:1017
std::sys_common::thread::start_thread
at rustc/c20d7eecbc0928b57da8fe30b2ef8528e2bdd5be/src/libstd/sys_common/thread.rs:13
std::sys::unix::thread::Thread::new::thread_start
at rustc/c20d7eecbc0928b57da8fe30b2ef8528e2bdd5be/src/libstd/sys/unix/thread.rs:80
44: start_thread
45: clone

Thread 'tokio-runtime-worker' panicked at 'Storage root must match that calculated.', runtime/crab/src/lib.rs:1

This is a bug. Please report it at:

/~https://github.com/darwinia-network/darwinia/issues/new

2020-07-19 06:41:18 Block prepare storage changes error:
Execution(RuntimePanicked("Storage root must match that calculated."))
2020-07-19 06:41:18 💔 Error importing block 0x3218421fcd9c6d46488cc99adf9e644f59acc546cd26ef252039fdcf2f138de5: Err(Other(ClientImport("Import failed: Execution: Runtime panicked: Storage root must match that calculated.")))

@aurexav
Copy link
Member

aurexav commented Jul 20, 2020

#458, I think these two are similar. Always happen after some of the node upgrade to a newer version.

@aurexav
Copy link
Member

aurexav commented Jul 28, 2020

move to #481

@aurexav aurexav closed this as completed Jul 28, 2020
@aurexav aurexav self-assigned this Aug 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants