From b44ef500397c40e813d50e48ed2981ddfe27edbb Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Wed, 24 Oct 2012 12:27:45 -0700 Subject: [PATCH] Small bugfixes and logging improvements. --- src/LedgerAcquire.cpp | 2 ++ src/LedgerMaster.cpp | 16 +++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/LedgerAcquire.cpp b/src/LedgerAcquire.cpp index 71c631eb0..67faba317 100644 --- a/src/LedgerAcquire.cpp +++ b/src/LedgerAcquire.cpp @@ -646,6 +646,8 @@ void LedgerAcquireSet::onComplete(boost::weak_ptr set, LedgerA if (acquired->isComplete()) { Ledger::pointer ledger = acquired->getLedger(); + assert(ledger); + cLog(lsDEBUG) << "LedgerAcquireSet::onComplete " << ledger->getLedgerSeq(); ledger->setAccepted(); theApp->getMasterLedger().checkLedgerGap(ledger); lSet->updateCurrentLedger(ledger); diff --git a/src/LedgerMaster.cpp b/src/LedgerMaster.cpp index 83e2cdc3b..603ab30fe 100644 --- a/src/LedgerMaster.cpp +++ b/src/LedgerMaster.cpp @@ -7,6 +7,8 @@ #include "NewcoinAddress.h" #include "Log.h" +SETUP_LOG(); + uint32 LedgerMaster::getCurrentLedgerIndex() { return mCurrentLedger->getLedgerSeq(); @@ -22,12 +24,12 @@ void LedgerMaster::pushLedger(Ledger::ref newLedger) { // Caller should already have properly assembled this ledger into "ready-to-close" form -- // all candidate transactions must already be applied - Log(lsINFO) << "PushLedger: " << newLedger->getHash(); + cLog(lsINFO) << "PushLedger: " << newLedger->getHash(); boost::recursive_mutex::scoped_lock ml(mLock); if (!!mFinalizedLedger) { mFinalizedLedger->setClosed(); - Log(lsTRACE) << "Finalizes: " << mFinalizedLedger->getHash(); + cLog(lsTRACE) << "Finalizes: " << mFinalizedLedger->getHash(); } mFinalizedLedger = mCurrentLedger; mCurrentLedger = newLedger; @@ -48,7 +50,7 @@ void LedgerMaster::pushLedger(Ledger::ref newLCL, Ledger::ref newOL) mLedgerHistory.addAcceptedLedger(newLCL, false); if (mLastFullLedger && (newLCL->getParentHash() == mLastFullLedger->getHash())) mLastFullLedger = newLCL; - Log(lsINFO) << "StashAccepted: " << newLCL->getHash(); + cLog(lsINFO) << "StashAccepted: " << newLCL->getHash(); } boost::recursive_mutex::scoped_lock ml(mLock); @@ -99,21 +101,25 @@ TER LedgerMaster::doTransaction(const SerializedTransaction& txn, TransactionEng void LedgerMaster::checkLedgerGap(Ledger::ref ledger) { + cLog(lsTRACE) << "Checking for ledger gap"; boost::recursive_mutex::scoped_lock sl(mLock); - if (ledger->getParentHash() == mLastFullLedger->getHash()) + if (mLastFullLedger && (ledger->getParentHash() == mLastFullLedger->getHash())) { mLastFullLedger = ledger; + cLog(lsTRACE) << "Perfect fit, no gap"; return; } if (theApp->getMasterLedgerAcquire().hasSet()) return; - if (ledger->getLedgerSeq() < mLastFullLedger->getLedgerSeq()) + if (mLastFullLedger && (ledger->getLedgerSeq() < mLastFullLedger->getLedgerSeq())) return; // we have a gap or discontinuity + cLog(lsWARNING) << "Ledger gap found " << + (mLastFullLedger ? mLastFullLedger->getLedgerSeq() : 0) << " - " << ledger->getLedgerSeq(); theApp->getMasterLedgerAcquire().makeSet(mLastFullLedger, ledger); }