From ca370ba5c76bb0ed37ee3b9225ad56d12f5319c3 Mon Sep 17 00:00:00 2001 From: Matthieu Vachon Date: Thu, 9 Apr 2020 12:50:03 -0400 Subject: [PATCH] Removed `dmlog_abi_serializer_max_time_us` We now use `abi_serializer_max_time_us` directly instead. --- libraries/chain/apply_context.cpp | 8 +++--- libraries/chain/controller.cpp | 8 ++++-- .../chain/include/eosio/chain/config.hpp | 2 -- .../chain/include/eosio/chain/controller.hpp | 27 ++++++++++--------- libraries/chain/transaction_context.cpp | 2 +- plugins/chain_plugin/chain_plugin.cpp | 8 +++--- 6 files changed, 31 insertions(+), 24 deletions(-) diff --git a/libraries/chain/apply_context.cpp b/libraries/chain/apply_context.cpp index 09db002fb2..6a65331227 100644 --- a/libraries/chain/apply_context.cpp +++ b/libraries/chain/apply_context.cpp @@ -550,7 +550,7 @@ void apply_context::schedule_deferred_transaction( const uint128_t& sender_id, a ("delay", ptr->delay_until) ("expiration", ptr->expiration) ("trx_id", dtrx.id()) - ("trx", control.maybe_to_variant_with_abi(dtrx, abi_serializer::create_yield_function(fc::microseconds(config::dmlog_abi_serializer_max_time_us)))) + ("trx", control.maybe_to_variant_with_abi(dtrx, abi_serializer::create_yield_function(control.get_abi_serializer_max_time()))) ); } @@ -581,7 +581,7 @@ void apply_context::schedule_deferred_transaction( const uint128_t& sender_id, a ("delay", gtx.delay_until) ("expiration", gtx.expiration) ("trx_id", trx.id()) - ("trx", control.maybe_to_variant_with_abi(trx, abi_serializer::create_yield_function(fc::microseconds(config::dmlog_abi_serializer_max_time_us)))) + ("trx", control.maybe_to_variant_with_abi(trx, abi_serializer::create_yield_function(control.get_abi_serializer_max_time()))) ); } } ); @@ -610,7 +610,7 @@ void apply_context::schedule_deferred_transaction( const uint128_t& sender_id, a ("delay", gtx.delay_until) ("expiration", gtx.expiration) ("trx_id", trx.id()) - ("trx", control.maybe_to_variant_with_abi(trx, abi_serializer::create_yield_function(fc::microseconds(config::dmlog_abi_serializer_max_time_us)))) + ("trx", control.maybe_to_variant_with_abi(trx, abi_serializer::create_yield_function(control.get_abi_serializer_max_time()))) ); } } ); @@ -648,7 +648,7 @@ bool apply_context::cancel_deferred_transaction( const uint128_t& sender_id, acc ("delay", gto->delay_until) ("expiration", gto->expiration) ("trx_id", dtrx.id()) - ("trx", control.maybe_to_variant_with_abi(dtrx, abi_serializer::create_yield_function(fc::microseconds(config::dmlog_abi_serializer_max_time_us)))) + ("trx", control.maybe_to_variant_with_abi(dtrx, abi_serializer::create_yield_function(control.get_abi_serializer_max_time()))) ); } diff --git a/libraries/chain/controller.cpp b/libraries/chain/controller.cpp index e1de718de8..e83689a97c 100644 --- a/libraries/chain/controller.cpp +++ b/libraries/chain/controller.cpp @@ -1149,7 +1149,7 @@ struct controller_impl { if (auto dm_logger = get_deep_mind_logger()) { fc_dlog(*dm_logger, "TRX_OP CREATE onerror ${id} ${trx}", ("id", etrx.id()) - ("trx", self.maybe_to_variant_with_abi(etrx, abi_serializer::create_yield_function(fc::microseconds(config::dmlog_abi_serializer_max_time_us)))) + ("trx", self.maybe_to_variant_with_abi(etrx, abi_serializer::create_yield_function(self.get_abi_serializer_max_time()))) ); } @@ -2448,7 +2448,7 @@ struct controller_impl { if (auto dm_logger = get_deep_mind_logger()) { fc_dlog(*dm_logger, "TRX_OP CREATE onblock ${id} ${trx}", ("id", trx.id()) - ("trx", self.maybe_to_variant_with_abi(trx, abi_serializer::create_yield_function(fc::microseconds(config::dmlog_abi_serializer_max_time_us)))) + ("trx", self.maybe_to_variant_with_abi(trx, abi_serializer::create_yield_function(self.get_abi_serializer_max_time()))) ); } @@ -3332,6 +3332,10 @@ void controller::add_to_ram_correction( account_name account, uint64_t ram_bytes } } +fc::microseconds controller::get_abi_serializer_max_time()const { + return my->conf.abi_serializer_max_time_us; +} + bool controller::all_subjective_mitigations_disabled()const { return my->conf.disable_all_subjective_mitigations; } diff --git a/libraries/chain/include/eosio/chain/config.hpp b/libraries/chain/include/eosio/chain/config.hpp index 7b501e59bc..6f27b174b8 100644 --- a/libraries/chain/include/eosio/chain/config.hpp +++ b/libraries/chain/include/eosio/chain/config.hpp @@ -99,8 +99,6 @@ const static uint32_t hashing_checktime_block_size = 10*1024; /// call const static eosio::chain::wasm_interface::vm_type default_wasm_runtime = eosio::chain::wasm_interface::vm_type::wabt; const static uint32_t default_abi_serializer_max_time_us = 15*1000; ///< default deadline for abi serialization methods -const static uint32_t dmlog_abi_serializer_max_time_us = 5*1000*1000; ///< deadline for abi serialization methods performed by deep mind logger - /** * The number of sequential blocks produced by a single producer */ diff --git a/libraries/chain/include/eosio/chain/controller.hpp b/libraries/chain/include/eosio/chain/controller.hpp index 0062bfd5eb..99bed3b950 100644 --- a/libraries/chain/include/eosio/chain/controller.hpp +++ b/libraries/chain/include/eosio/chain/controller.hpp @@ -65,18 +65,19 @@ namespace eosio { namespace chain { flat_set contract_blacklist; flat_set< pair > action_blacklist; flat_set key_blacklist; - path blocks_dir = chain::config::default_blocks_dir_name; - path state_dir = chain::config::default_state_dir_name; - uint64_t state_size = chain::config::default_state_size; - uint64_t state_guard_size = chain::config::default_state_guard_size; - uint64_t reversible_cache_size = chain::config::default_reversible_cache_size; - uint64_t reversible_guard_size = chain::config::default_reversible_guard_size; - uint32_t sig_cpu_bill_pct = chain::config::default_sig_cpu_bill_pct; - uint16_t thread_pool_size = chain::config::default_controller_thread_pool_size; - bool read_only = false; - bool force_all_checks = false; - bool disable_replay_opts = false; - bool contracts_console = false; + path blocks_dir = chain::config::default_blocks_dir_name; + path state_dir = chain::config::default_state_dir_name; + uint64_t state_size = chain::config::default_state_size; + uint64_t state_guard_size = chain::config::default_state_guard_size; + uint64_t reversible_cache_size = chain::config::default_reversible_cache_size; + uint64_t reversible_guard_size = chain::config::default_reversible_guard_size; + uint32_t sig_cpu_bill_pct = chain::config::default_sig_cpu_bill_pct; + uint16_t thread_pool_size = chain::config::default_controller_thread_pool_size; + fc::microseconds abi_serializer_max_time_us = fc::microseconds(chain::config::default_abi_serializer_max_time_us); + bool read_only = false; + bool force_all_checks = false; + bool disable_replay_opts = false; + bool contracts_console = false; bool allow_ram_billing_in_notify = false; uint32_t maximum_variable_signature_length = chain::config::default_max_variable_signature_length; bool disable_all_subjective_mitigations = false; //< for developer & testing purposes, can be configured using `disable-all-subjective-mitigations` when `EOSIO_DEVELOPER` build option is provided @@ -294,6 +295,8 @@ namespace eosio { namespace chain { void set_greylist_limit( uint32_t limit ); uint32_t get_greylist_limit()const; + fc::microseconds get_abi_serializer_max_time() const; + void add_to_ram_correction( account_name account, uint64_t ram_bytes, uint32_t action_id, const char* event_id ); bool all_subjective_mitigations_disabled()const; diff --git a/libraries/chain/transaction_context.cpp b/libraries/chain/transaction_context.cpp index 40a2d70295..a91c1dfa84 100644 --- a/libraries/chain/transaction_context.cpp +++ b/libraries/chain/transaction_context.cpp @@ -652,7 +652,7 @@ namespace eosio { namespace chain { ("delay", gto.delay_until) ("expiration", gto.expiration) ("trx_id", trx.id()) - ("trx", control.maybe_to_variant_with_abi(trx, abi_serializer::create_yield_function(fc::microseconds(config::dmlog_abi_serializer_max_time_us)))) + ("trx", control.maybe_to_variant_with_abi(trx, abi_serializer::create_yield_function(control.get_abi_serializer_max_time()))) ); } }); diff --git a/plugins/chain_plugin/chain_plugin.cpp b/plugins/chain_plugin/chain_plugin.cpp index 6b66e492d6..5eb5d0f811 100644 --- a/plugins/chain_plugin/chain_plugin.cpp +++ b/plugins/chain_plugin/chain_plugin.cpp @@ -706,8 +706,10 @@ void chain_plugin::plugin_initialize(const variables_map& options) { if( options.count( "wasm-runtime" )) my->wasm_runtime = options.at( "wasm-runtime" ).as(); - if(options.count("abi-serializer-max-time-ms")) + if(options.count("abi-serializer-max-time-ms")) { my->abi_serializer_max_time_us = fc::microseconds(options.at("abi-serializer-max-time-ms").as() * 1000); + my->chain_config->abi_serializer_max_time_us = my->abi_serializer_max_time_us; + } my->chain_config->blocks_dir = my->blocks_dir; my->chain_config->state_dir = app().data_dir() / config::default_state_dir_name; @@ -1143,8 +1145,8 @@ void chain_plugin::plugin_initialize(const variables_map& options) { [this]( std::tuple t ) { if (auto dm_logger = my->chain->get_deep_mind_logger()) { fc_dlog(*dm_logger, "APPLIED_TRANSACTION ${block} ${traces}", - ("block", chain().head_block_num() + 1) - ("traces", chain().maybe_to_variant_with_abi(std::get<0>(t), abi_serializer::create_yield_function(fc::microseconds(config::dmlog_abi_serializer_max_time_us)))) + ("block", my->chain->head_block_num() + 1) + ("traces", my->chain->maybe_to_variant_with_abi(std::get<0>(t), abi_serializer::create_yield_function(my->chain->get_abi_serializer_max_time()))) ); }