From cf284897bbd168e3c6061d4fdbece6031b974477 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Wed, 9 Jan 2013 15:55:41 -0800 Subject: [PATCH] Fix a case where we might try too quickly to re-acquire a ledger. --- src/cpp/ripple/LedgerMaster.cpp | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/cpp/ripple/LedgerMaster.cpp b/src/cpp/ripple/LedgerMaster.cpp index e3932c3a0..ffa0ed45d 100644 --- a/src/cpp/ripple/LedgerMaster.cpp +++ b/src/cpp/ripple/LedgerMaster.cpp @@ -444,19 +444,26 @@ void LedgerMaster::tryPublish() } else { - LedgerAcquire::pointer acq = theApp->getMasterLedgerAcquire().findCreate(hash); - if (!acq->isDone()) + if (theApp->getMasterLedgerAcquire().isFailure(hash)) { - acq->setAccept(); - break; - } - else if (acq->isComplete() && !acq->isFailed()) - { - mPubLedger = acq->getLedger(); - mPubLedgers.push_back(mPubLedger); + cLog(lsFATAL) << "Unable to acquire a recent validated ledger"; } else - cLog(lsWARNING) << "Failed to acquire a published ledger"; + { + LedgerAcquire::pointer acq = theApp->getMasterLedgerAcquire().findCreate(hash); + if (!acq->isDone()) + { + acq->setAccept(); + break; + } + else if (acq->isComplete() && !acq->isFailed()) + { + mPubLedger = acq->getLedger(); + mPubLedgers.push_back(mPubLedger); + } + else + cLog(lsWARNING) << "Failed to acquire a published ledger"; + } } } }