Remove block_process_timeout
(#4599)
* Remove `block_process_timeout` * Test overflow of local blocks
This commit is contained in:
parent
87235d757f
commit
fd3a5ab73a
5 changed files with 25 additions and 17 deletions
|
@ -3848,3 +3848,25 @@ TEST (node, port_mapping)
|
|||
auto node = system.add_node ();
|
||||
node->port_mapping.refresh_devices ();
|
||||
}
|
||||
|
||||
TEST (node, process_local_overflow)
|
||||
{
|
||||
nano::test::system system;
|
||||
auto config = system.default_config ();
|
||||
config.block_processor.max_system_queue = 0;
|
||||
auto & node = *system.add_node (config);
|
||||
|
||||
nano::keypair key1;
|
||||
nano::send_block_builder builder;
|
||||
auto latest_hash = nano::dev::genesis->hash ();
|
||||
auto send1 = builder.make_block ()
|
||||
.previous (latest_hash)
|
||||
.destination (key1.pub)
|
||||
.balance (nano::dev::constants.genesis_amount - nano::Gxrb_ratio)
|
||||
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
|
||||
.work (*system.work.generate (latest_hash))
|
||||
.build ();
|
||||
|
||||
auto result = node.process_local (send1);
|
||||
ASSERT_FALSE (result);
|
||||
}
|
|
@ -160,7 +160,6 @@ TEST (toml, daemon_config_deserialize_defaults)
|
|||
ASSERT_EQ (conf.node.bootstrap_bandwidth_limit, defaults.node.bootstrap_bandwidth_limit);
|
||||
ASSERT_EQ (conf.node.bootstrap_bandwidth_burst_ratio, defaults.node.bootstrap_bandwidth_burst_ratio);
|
||||
ASSERT_EQ (conf.node.block_processor_batch_max_time, defaults.node.block_processor_batch_max_time);
|
||||
ASSERT_EQ (conf.node.block_process_timeout, defaults.node.block_process_timeout);
|
||||
ASSERT_EQ (conf.node.bootstrap_connections, defaults.node.bootstrap_connections);
|
||||
ASSERT_EQ (conf.node.bootstrap_connections_max, defaults.node.bootstrap_connections_max);
|
||||
ASSERT_EQ (conf.node.bootstrap_initiator_threads, defaults.node.bootstrap_initiator_threads);
|
||||
|
@ -404,7 +403,6 @@ TEST (toml, daemon_config_deserialize_no_defaults)
|
|||
bootstrap_bandwidth_limit = 999
|
||||
bootstrap_bandwidth_burst_ratio = 999.9
|
||||
block_processor_batch_max_time = 999
|
||||
block_process_timeout = 999
|
||||
bootstrap_connections = 999
|
||||
bootstrap_connections_max = 999
|
||||
bootstrap_initiator_threads = 999
|
||||
|
@ -609,7 +607,6 @@ TEST (toml, daemon_config_deserialize_no_defaults)
|
|||
ASSERT_NE (conf.node.bootstrap_bandwidth_limit, defaults.node.bootstrap_bandwidth_limit);
|
||||
ASSERT_NE (conf.node.bootstrap_bandwidth_burst_ratio, defaults.node.bootstrap_bandwidth_burst_ratio);
|
||||
ASSERT_NE (conf.node.block_processor_batch_max_time, defaults.node.block_processor_batch_max_time);
|
||||
ASSERT_NE (conf.node.block_process_timeout, defaults.node.block_process_timeout);
|
||||
ASSERT_NE (conf.node.bootstrap_connections, defaults.node.bootstrap_connections);
|
||||
ASSERT_NE (conf.node.bootstrap_connections_max, defaults.node.bootstrap_connections_max);
|
||||
ASSERT_NE (conf.node.bootstrap_initiator_threads, defaults.node.bootstrap_initiator_threads);
|
||||
|
|
|
@ -158,17 +158,13 @@ std::optional<nano::block_status> nano::block_processor::add_blocking (std::shar
|
|||
|
||||
try
|
||||
{
|
||||
auto status = future.wait_for (node.config.block_process_timeout);
|
||||
debug_assert (status != std::future_status::deferred);
|
||||
if (status == std::future_status::ready)
|
||||
{
|
||||
return future.get ();
|
||||
}
|
||||
future.wait ();
|
||||
return future.get ();
|
||||
}
|
||||
catch (std::future_error const &)
|
||||
{
|
||||
node.stats.inc (nano::stat::type::blockprocessor, nano::stat::detail::process_blocking_timeout);
|
||||
node.logger.error (nano::log::type::blockprocessor, "Timeout processing block: {}", block->hash ().to_string ());
|
||||
node.logger.error (nano::log::type::blockprocessor, "Block dropped when processing: {}", block->hash ().to_string ());
|
||||
}
|
||||
|
||||
return std::nullopt;
|
||||
|
|
|
@ -107,7 +107,6 @@ nano::error nano::node_config::serialize_toml (nano::tomlconfig & toml) const
|
|||
toml.put ("bootstrap_serving_threads", bootstrap_serving_threads, "Number of threads dedicated to serving bootstrap data to other peers. Defaults to half the number of CPU threads, and at least 2.\ntype:uint64");
|
||||
toml.put ("bootstrap_frontier_request_count", bootstrap_frontier_request_count, "Number frontiers per bootstrap frontier request. Defaults to 1048576.\ntype:uint32,[1024..4294967295]");
|
||||
toml.put ("block_processor_batch_max_time", block_processor_batch_max_time.count (), "The maximum time the block processor can continuously process blocks for.\ntype:milliseconds");
|
||||
toml.put ("block_process_timeout", block_process_timeout.count (), "Time to wait for block processing result.\ntype:seconds");
|
||||
toml.put ("allow_local_peers", allow_local_peers, "Enable or disable local host peering.\ntype:bool");
|
||||
toml.put ("vote_minimum", vote_minimum.to_string_dec (), "Local representatives do not vote if the delegated weight is under this threshold. Saves on system resources.\ntype:string,amount,raw");
|
||||
toml.put ("vote_generator_delay", vote_generator_delay.count (), "Delay before votes are sent to allow for efficient bundling of hashes in votes.\ntype:milliseconds");
|
||||
|
@ -413,10 +412,6 @@ nano::error nano::node_config::deserialize_toml (nano::tomlconfig & toml)
|
|||
toml.get ("block_processor_batch_max_time", block_processor_batch_max_time_l);
|
||||
block_processor_batch_max_time = std::chrono::milliseconds (block_processor_batch_max_time_l);
|
||||
|
||||
auto block_process_timeout_l = block_process_timeout.count ();
|
||||
toml.get ("block_process_timeout", block_process_timeout_l);
|
||||
block_process_timeout = std::chrono::seconds{ block_process_timeout_l };
|
||||
|
||||
auto unchecked_cutoff_time_l = static_cast<unsigned long> (unchecked_cutoff_time.count ());
|
||||
toml.get ("unchecked_cutoff_time", unchecked_cutoff_time_l);
|
||||
unchecked_cutoff_time = std::chrono::seconds (unchecked_cutoff_time_l);
|
||||
|
|
|
@ -99,8 +99,6 @@ public:
|
|||
std::string external_address;
|
||||
uint16_t external_port{ 0 };
|
||||
std::chrono::milliseconds block_processor_batch_max_time{ std::chrono::milliseconds (500) };
|
||||
/** Time to wait for block processing result */
|
||||
std::chrono::seconds block_process_timeout{ 300 };
|
||||
std::chrono::seconds unchecked_cutoff_time{ std::chrono::seconds (4 * 60 * 60) }; // 4 hours
|
||||
/** Timeout for initiated async operations */
|
||||
std::chrono::seconds tcp_io_timeout{ (network_params.network.is_dev_network () && !is_sanitizer_build ()) ? std::chrono::seconds (5) : std::chrono::seconds (15) };
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue