core: guard against a mined block not finding all txes in the pool

This can happen for several reasons, but mainly if another block
was received, which took that tx off the pool.
pull/95/head
moneromooo-monero 7 years ago
parent 86e9de588c
commit 529a6a4af8
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3

@ -1026,7 +1026,15 @@ namespace cryptonote
block_verification_context bvc = boost::value_initialized<block_verification_context>();
m_miner.pause();
std::list<block_complete_entry> blocks;
blocks.push_back(get_block_complete_entry(b, m_mempool));
try
{
blocks.push_back(get_block_complete_entry(b, m_mempool));
}
catch (const std::exception &e)
{
m_miner.resume();
return false;
}
prepare_handle_incoming_blocks(blocks);
m_blockchain_storage.add_new_block(b, bvc);
cleanup_handle_incoming_blocks(true);

Loading…
Cancel
Save