refuse to activate a UTXO snapshot if mempool not empty

This ensures that we avoid any unexpected conditions inherent in
transferring non-empty mempools across chainstates.

Note that this should never happen in practice given that snapshot
activation will not occur outside of IBD, based upon the height checks
in `loadtxoutset`.
pull/27596/head
James O'Beirne 1 year ago
parent ce585a9a15
commit bb05857794

@ -5185,6 +5185,14 @@ bool ChainstateManager::ActivateSnapshot(
return false;
}
{
LOCK(::cs_main);
if (Assert(m_active_chainstate->GetMempool())->size() > 0) {
LogPrintf("[snapshot] can't activate a snapshot when mempool not empty\n");
return false;
}
}
int64_t current_coinsdb_cache_size{0};
int64_t current_coinstip_cache_size{0};

Loading…
Cancel
Save