diff --git a/modules/ripple_app/ledger/LedgerMaster.cpp b/modules/ripple_app/ledger/LedgerMaster.cpp index 9a271a35ef..3792a8fe95 100644 --- a/modules/ripple_app/ledger/LedgerMaster.cpp +++ b/modules/ripple_app/ledger/LedgerMaster.cpp @@ -579,9 +579,11 @@ void LedgerMaster::advanceThread() } else { + WriteLog (lsTRACE, LedgerMaster) << "Found " << pubLedgers.size() << " ledgers to publish"; BOOST_FOREACH(Ledger::ref ledger, pubLedgers) { sl.unlock(); + WriteLog(lsDEBUG, LedgerMaster) << "Publishing seq " << ledger->getLedgerSeq(); setFullLedger(ledger, true, true); getApp().getOPs().pubLedger(ledger); @@ -590,6 +592,14 @@ void LedgerMaster::advanceThread() mPubLedger = ledger; progress = true; } + getApp().getOPs().clearNeedNetworkLedger(); + mPathFindNewLedger = true; + if (!mPathFindThread) + { + mPathFindThread = true; + getApp().getJobQueue ().addJob (jtUPDATE_PF, "updatePaths", + BIND_TYPE (&LedgerMaster::updatePaths, this)); + } } } while (progress); @@ -601,7 +611,10 @@ std::list LedgerMaster::findNewLedgersToPublish() std::list ret; if (!mPubLedger) + { + WriteLog (lsINFO, LedgerMaster) << "First published ledger will be " << mValidLedger->getLedgerSeq(); ret.push_back (mValidLedger); + } else if (mValidLedger->getLedgerSeq () > (mPubLedger->getLedgerSeq () + MAX_LEDGER_GAP)) { WriteLog (lsWARNING, LedgerMaster) << "Gap in validated ledger stream " << mPubLedger->getLedgerSeq () << " - " << @@ -663,7 +676,7 @@ std::list LedgerMaster::findNewLedgersToPublish() if (ledger && (ledger->getLedgerSeq() == (mPubLedger->getLedgerSeq() + 1))) { // We acquired the next ledger we need to publish ledger->setValidated(); - ret.push_back (mPubLedger); + ret.push_back (ledger); } }