jormungandr: not yet implemented: method to load a Ref from the storage is not yet there
Describe the bug When restarting a node with trusted peer this happen:
Sep 17 21:20:44.134 INFO Starting jormungandr 0.3.3 (, release, linux [x86_64]) - [rustc 1.36.0 (a53f9df32 2019-07-03)], task: init
Sep 17 21:20:44.134 INFO storing blockchain in '"./storage/blocks.sqlite"', task: init
Sep 17 21:20:44.151 INFO connecting to bootstrap peer 3.122.73.200:3000, peer: /ip4/3.122.73.200/tcp/3000, network: bootstrap, task: bootstrap
thread 'main' panicked at 'not yet implemented: method to load a Ref from the storage is not yet there', jormungandr/src/blockchain/chain.rs:259:37
stack backtrace:
0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
1: std::sys_common::backtrace::_print
2: std::panicking::default_hook::{{closure}}
3: std::panicking::default_hook
4: std::panicking::rust_panic_with_hook
5: std::panicking::continue_panic_fmt
6: std::panicking::begin_panic_fmt
7: futures::future::chain::Chain<A,B,C>::poll
8: futures::future::chain::Chain<A,B,C>::poll
9: futures::future::chain::Chain<A,B,C>::poll
10: futures::future::chain::Chain<A,B,C>::poll
11: futures::future::chain::Chain<A,B,C>::poll
12: futures::future::chain::Chain<A,B,C>::poll
13: futures::future::chain::Chain<A,B,C>::poll
14: <futures::stream::fold::Fold<S,F,Fut,T> as futures::future::Future>::poll
15: futures::future::chain::Chain<A,B,C>::poll
16: futures::future::chain::Chain<A,B,C>::poll
17: futures::future::chain::Chain<A,B,C>::poll
18: futures::task_impl::std::set
19: std::thread::local::LocalKey<T>::with
20: tokio_current_thread::Entered<P>::block_on
21: std::thread::local::LocalKey<T>::with
22: std::thread::local::LocalKey<T>::with
23: std::thread::local::LocalKey<T>::with
24: std::thread::local::LocalKey<T>::with
25: tokio::runtime::current_thread::runtime::Runtime::block_on
26: tokio::runtime::current_thread::block_on_all
27: jormungandr::network::bootstrap::bootstrap_from_peer
28: jormungandr::network::bootstrap
29: jormungandr::main
30: std::rt::lang_start::{{closure}}
31: std::panicking::try::do_call
32: __rust_maybe_catch_panic
33: std::rt::lang_start_internal
34: main
35: __libc_start_main
36: _start
Mandatory Information running revision 646b07116e2f40be66aee51df5e353c56b4fdd9e.
To Reproduce
Steps to reproduce the behavior:
1.
nix-shell https://github.com/input-output-hk/jormungandr-nix/archive/listen-address.tar.gz --argstr trusted_peers /ip4/3.122.73.200/tcp/3000
2.
mkdir storage
3.
uncompress/copy attached sqlite db into the storage folder
4.
RUST_BACKTRACE=1 run-jormungandr
Expected behavior the node start correctly.
Additional context
the genesis block of the cluster was generated using the following command:
nix-shell https://github.com/input-output-hk/jormungandr-nix/archive/listen-address.tar.gz --arg numberOfStakePools 7 --arg faucetAmounts '[ 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 100000000 100000000 100000000 ]' --arg slots_per_epoch 21600 --arg slot_duration 20 --arg consensus_genesis_praos_active_slot_coeff 0.1 --arg kes_update_speed 86400 --arg numberOfLeaders 7
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 29 (20 by maintainers)
Links to this issue
Commits related to this issue
- force by passing the Ref Cache when loading the blockchain for the first time fix #788 — committed to input-output-hk/jormungandr by NicolasDP 5 years ago
- closes #788 with mitigating solution — committed to input-output-hk/jormungandr by NicolasDP 5 years ago
- closes #788 with mitigating solution — committed to input-output-hk/jormungandr by NicolasDP 5 years ago
- closes #788 with mitigating solution — committed to input-output-hk/jormungandr by NicolasDP 5 years ago
- closes #788 with mitigating solution — committed to input-output-hk/jormungandr by NicolasDP 5 years ago
This still exists on 0.5.6
So it looks like this error arise when a node try to bootstrap from a trusted peer that is offering a shorter blockchain that what the node already has in local storage. @NicolasDP do you confirm that this is a plausible scenario for this error?
Replicated with 0.7.0 on brand new nightly testnet.
Sam and Priyank told me this error could be related to #788 and to post the output here. I am using Mac OSX 10.14.6 and Jormungandr 0.5.5 on a node that normally runs many hours without a crash. This is not a Nix build but built from jormungandr-v0.5.5-x86_64-apple-darwin.tar
Oct 02 21:16:38.642 WARN UploadBlocks request failed: Error { code: Internal, source: Status { code: Internal, message: “h2 protocol error: protocol error: unexpected internal error encountered” } }, node_id: 15250992350008249921, peer_addr: 3.115.57.216:3000, task: network thread ‘block1’ panicked at ‘not yet implemented: method to load a Ref from the storage is not yet there’, jormungandr/src/blockchain/chain.rs:259:37 note: run with
RUST_BACKTRACE=1environment variable to display a backtrace. not yet implemented: method to load a Ref from the storage is not yet there thread ‘leadership0’ panicked at ‘Expect the event to not close’, src/libcore/option.rs:1166:5