Disable process active with large queue (#1010)
* Disable process active with large queue * Priority processor for local blocks * Block UDP while block_processor flush * Adjust values * Hold on bootstrap if flushing * Update rai::transaction * Disable process active with large queue I.e. for slow peers trying to bootstrap with huge UDP incoming traffic Also preventing node from segfault with queue overflow * restore permissions * Fix
This commit is contained in:
parent
ba6196ca86
commit
213fa84286
1 changed files with 9 additions and 3 deletions
|
@ -500,7 +500,10 @@ public:
|
|||
}
|
||||
node.stats.inc (nano::stat::type::message, nano::stat::detail::publish, nano::stat::dir::in);
|
||||
node.peers.contacted (sender, message_a.header.version_using);
|
||||
node.process_active (message_a.block);
|
||||
if (!node.block_processor.full ())
|
||||
{
|
||||
node.process_active (message_a.block);
|
||||
}
|
||||
node.active.publish (message_a.block);
|
||||
}
|
||||
void confirm_req (nano::confirm_req const & message_a) override
|
||||
|
@ -536,7 +539,10 @@ public:
|
|||
if (!vote_block.which ())
|
||||
{
|
||||
auto block (boost::get<std::shared_ptr<nano::block>> (vote_block));
|
||||
node.process_active (block);
|
||||
if (!node.block_processor.full ())
|
||||
{
|
||||
node.process_active (block);
|
||||
}
|
||||
node.active.publish (block);
|
||||
}
|
||||
}
|
||||
|
@ -1218,7 +1224,7 @@ void nano::block_processor::flush ()
|
|||
bool nano::block_processor::full ()
|
||||
{
|
||||
std::unique_lock<std::mutex> lock (mutex);
|
||||
return (blocks.size () + state_blocks.size ()) > 16384;
|
||||
return (blocks.size () + state_blocks.size ()) > 65536;
|
||||
}
|
||||
|
||||
void nano::block_processor::add (std::shared_ptr<nano::block> block_a, std::chrono::steady_clock::time_point origination)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue