Verify SQLite ledgers exist in node store

This commit is contained in:
Miguel Portilla
2018-03-12 21:26:42 -04:00
committed by Nikolaos D. Bougalis
parent d9be0de269
commit 4869a0d00e

View File

@@ -451,9 +451,10 @@ LedgerMaster::tryFill (
std::map< std::uint32_t, std::pair<uint256, uint256> > ledgerHashes;
std::uint32_t minHas = ledger->info().seq;
std::uint32_t maxHas = ledger->info().seq;
std::uint32_t minHas = seq;
std::uint32_t maxHas = seq;
NodeStore::Database& nodeStore {app_.getNodeStore()};
while (! job.shouldCancel() && seq > 0)
{
{
@@ -484,6 +485,16 @@ LedgerMaster::tryFill (
if (it == ledgerHashes.end ())
break;
if (!nodeStore.fetch(ledgerHashes.begin()->second.first,
ledgerHashes.begin()->first))
{
// The ledger is not backed by the node store
JLOG(m_journal.warn()) <<
"SQL DB ledger sequence " << seq <<
" mismatches node store";
break;
}
}
if (it->second.first != prevHash)