state compatibility checks are confusing and overreacting (regression)
I transplanted shared_memory.bin
from one node to another, that's the mirror net.
I had small differences in config.ini
file, but those looked negligible, apparently weren't.
Apparently there's plenty of differences between loaded_decoded_types_details.log
and current_decoded_types_details.log
But the diff config.ini-orig
and config.ini-current
is just:
plugin = wallet_bridge_api
That I just added to the new config.ini
and it was the cause of cryptic error messages and failure seemingly without other option than just --force-replay
(because there's no longer --force-open
)
So missing api plugin that doesn't affect state such as wallet_bridge_api
, but also I guess block_api
, network_broadcast_api
that one would want to enable at some point would now require replay instead of stop, edit, start.
Also please note that there are "market_history", "market_history_api"
mentioned in Persistent storage was created using plugins:
but there's no way that it was the truth, as I never used those plugins for a consensus node (usually I keep those in configuration where full account history resides, etc)
582786ms chainbase.cpp:187 open ] Compiler and build environment read from persistent storage: `{"compiler":"11.4.0", "debug":0, "apple":0, "windows":0, {"version":{"blockchain_version":"1.28.0","hive_revision":"a61eef1efe27ea3d84148eaac15b75614fbc35b8",
"fc_revision":"a61eef1efe27ea3d84148eaac15b75614fbc35b8","node_type":"mirrornet"}}, "plugins" : ["block_api", "chain", "condenser_api", "database_api", "json_rpc", "network_broadcast_api", "p2p", "rc_api", "state_snapshot", "webserver", "witness"]}'
582787ms database.cpp:169 operator() ] Persistent storage was created using plugins: "plugins" : ["block_api", "chain", "condenser_api", "database_api", "json_rpc", "network_broadcast_api", "p2p", "rc_api", "state_snapshot", "webserver", "witness"] but curren
t node has following plugins: "plugins" : ["account_by_key", "account_by_key_api", "block_api", "chain", "condenser_api", "database_api", "json_rpc", "market_history", "market_history_api", "network_broadcast_api", "p2p", "rc_api", "state_snapshot", "wallet_bridge_api", "webserver"
, "witness"]
582983ms database.cpp:177 open ] 4130000 shm_state_definitions_mismatch_exception: State objects definitions from shared memory file mismatch current version of app.
Details:
Amount of decoded types differs from amount of loaded decoded types. Current amount of decoded types: 191, loaded amount of decoded types: 180
Type is in current decoded types map but not in loaded decoded types map: boost::multi_index::multi_index_container<hive::plugins::account_by_key::key_lookup_object, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<boost::multi_index::tag<chainbase::by_id, mpl_::na
, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::const_mem_fun<hive::plugins::account_by_key::key_lookup_object, chainbase::oid<
hive::plugins::account_by_key::key_lookup_object>, &(hive::plugins::account_by_key::key_lookup_object::get_id() const)>, mpl_::na>, boost::multi_index::ordered_unique<boost::multi_index::tag<hive::plugins::account_by_key::by_key, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mp
l_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::composite_key<hive::plugins::account_by_key::key_lookup_object, boost::multi_index::member<hive::plugins::account_by_key::k
ey_lookup_object, hive::protocol::public_key_type, &hive::plugins::account_by_key::key_lookup_object::key>, boost::multi_index::member<hive::plugins::account_by_key::key_lookup_object, hive::protocol::fixed_string_impl<fc::erpair<unsigned long, unsigned long> >, &hive::plugins::acc
ount_by_key::key_lookup_object::account>, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, mpl_::na>, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::interprocess::allocator<hive::plugins::account_by_key::key_lookup_object, boost::interprocess::segment_manager<cha
r, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0ul>, 0ul>, boost::interprocess::iset_index> > >
Type is in current decoded types map but not in loaded decoded types map: boost::multi_index::multi_index_container<hive::plugins::market_history::bucket_object, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<boost::multi_index::tag<chainbase::by_id, mpl_::na, mp
l_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::const_mem_fun<hive::plugins::market_history::bucket_object, chainbase::oid<hive::pl
ugins::market_history::bucket_object>, &(hive::plugins::market_history::bucket_object::get_id() const)>, mpl_::na>, boost::multi_index::ordered_unique<boost::multi_index::tag<hive::plugins::market_history::by_bucket, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_:
:na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::composite_key<hive::plugins::market_history::bucket_object, boost::multi_index::member<hive::plugins::market_history::bucket_object, uns
igned int, &hive::plugins::market_history::bucket_object::seconds>, boost::multi_index::member<hive::plugins::market_history::bucket_object, fc::time_point_sec, &hive::plugins::market_history::bucket_object::open>, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::
null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::multi_index::composite_key_compare<std::less<unsigned int>, std::less<fc::time_point_sec>, boost::tuples::null_type, boost::tuples::n
ull_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl
_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::interprocess::allocator<hive::plugins::market_history::bucket_object, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::o
ffset_ptr<void, long, unsigned long, 0ul>, 0ul>, boost::interprocess::iset_index> > >
Type is in current decoded types map but not in loaded decoded types map: boost::multi_index::multi_index_container<hive::plugins::market_history::order_history_object, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<boost::multi_index::tag<chainbase::by_id, mpl_:
:na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::const_mem_fun<hive::plugins::market_history::order_history_object, chainbase
::oid<hive::plugins::market_history::order_history_object>, &(hive::plugins::market_history::order_history_object::get_id() const)>, mpl_::na>, boost::multi_index::ordered_unique<boost::multi_index::tag<hive::plugins::market_history::by_time, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::composite_key<hive::plugins::market_history::order_history_object, boost::multi_index::member<hive::plugins::m
arket_history::order_history_object, fc::time_point_sec, &hive::plugins::market_history::order_history_object::time>, boost::multi_index::const_mem_fun<hive::plugins::market_history::order_history_object, chainbase::oid<hive::plugins::market_history::order_history_object>, &(hive::
plugins::market_history::order_history_object::get_id() const)>, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, mpl_::na
>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::interprocess::allocator<hive::plugins::market_history::order_history_object, boost::interpr
ocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0ul>, 0ul>, boost::interprocess::iset_index> > >
Type is in current decoded types map but not in loaded decoded types map: chainbase::oid<hive::plugins::account_by_key::key_lookup_object>
Type is in current decoded types map but not in loaded decoded types map: chainbase::oid<hive::plugins::market_history::bucket_object>
Type is in current decoded types map but not in loaded decoded types map: chainbase::oid<hive::plugins::market_history::order_history_object>
Type is in current decoded types map but not in loaded decoded types map: hive::plugins::account_by_key::key_lookup_object
Type is in current decoded types map but not in loaded decoded types map: hive::plugins::market_history::bucket_object
Type is in current decoded types map but not in loaded decoded types map: hive::plugins::market_history::bucket_object_details
Type is in current decoded types map but not in loaded decoded types map: hive::plugins::market_history::order_history_object
Type is in current decoded types map but not in loaded decoded types map: hive::protocol::fill_order_operation