Bugfix for ledger acquired but not written to database with txns.

This commit is contained in:
JoelKatz
2013-03-11 09:19:54 -07:00
parent 6929579660
commit c26726eff3
2 changed files with 8 additions and 2 deletions

View File

@@ -356,7 +356,7 @@ void LedgerMaster::fixMismatch(Ledger::ref ledger)
tLog(invalidate != 0, lsWARNING) << "All " << invalidate << " prior ledgers invalidated";
}
void LedgerMaster::setFullLedger(Ledger::ref ledger)
void LedgerMaster::setFullLedger(Ledger::pointer ledger)
{ // A new ledger has been accepted as part of the trusted chain
cLog(lsDEBUG) << "Ledger " << ledger->getLedgerSeq() << " accepted :" << ledger->getHash();
@@ -364,6 +364,12 @@ void LedgerMaster::setFullLedger(Ledger::ref ledger)
mCompleteLedgers.setValue(ledger->getLedgerSeq());
if (Ledger::getHashByIndex(ledger->getLedgerSeq()) != ledger->getHash())
{
ledger->pendSave(false);
return;
}
if ((ledger->getLedgerSeq() != 0) && mCompleteLedgers.hasValue(ledger->getLedgerSeq() - 1))
{ // we think we have the previous ledger, double check
Ledger::pointer prevLedger = getLedgerBySeq(ledger->getLedgerSeq() - 1);

View File

@@ -84,7 +84,7 @@ public:
void pushLedger(Ledger::pointer newLCL, Ledger::pointer newOL, bool fromConsensus);
void storeLedger(Ledger::pointer);
void setFullLedger(Ledger::ref ledger);
void setFullLedger(Ledger::pointer ledger);
void switchLedgers(Ledger::pointer lastClosed, Ledger::pointer newCurrent);