diff --git a/src/ripple/app/ledger/impl/LedgerMaster.cpp b/src/ripple/app/ledger/impl/LedgerMaster.cpp index 7bc1bf243..4cc195815 100644 --- a/src/ripple/app/ledger/impl/LedgerMaster.cpp +++ b/src/ripple/app/ledger/impl/LedgerMaster.cpp @@ -1080,6 +1080,16 @@ LedgerMaster::checkAccept(std::shared_ptr const& ledger) if (!fees.empty()) { std::sort(fees.begin(), fees.end()); + if (auto stream = m_journal.debug()) + { + std::stringstream s; + s << "Received fees from validations: (" << fees.size() << ") "; + for (auto const fee1 : fees) + { + s << " " << fee1; + } + stream << s.str(); + } fee = fees[fees.size() / 2]; // median } else diff --git a/src/ripple/app/misc/LoadFeeTrack.h b/src/ripple/app/misc/LoadFeeTrack.h index 30c8766a9..0109468cb 100644 --- a/src/ripple/app/misc/LoadFeeTrack.h +++ b/src/ripple/app/misc/LoadFeeTrack.h @@ -21,6 +21,7 @@ #define RIPPLE_CORE_LOADFEETRACK_H_INCLUDED #include +#include #include #include #include @@ -58,6 +59,7 @@ public: void setRemoteFee(std::uint32_t f) { + JLOG(j_.trace()) << "setRemoteFee: " << f; std::lock_guard sl(lock_); remoteTxnLoadFee_ = f; } @@ -110,6 +112,7 @@ public: void setClusterFee(std::uint32_t fee) { + JLOG(j_.trace()) << "setClusterFee: " << fee; std::lock_guard sl(lock_); clusterTxnLoadFee_ = fee; } diff --git a/src/ripple/app/tx/impl/Transactor.cpp b/src/ripple/app/tx/impl/Transactor.cpp index 8b74463de..619ce031b 100644 --- a/src/ripple/app/tx/impl/Transactor.cpp +++ b/src/ripple/app/tx/impl/Transactor.cpp @@ -174,15 +174,19 @@ Transactor::checkFee(PreclaimContext const& ctx, FeeUnit64 baseFee) if (!isLegalAmount(feePaid) || feePaid < beast::zero) return temBAD_FEE; - auto const feeDue = - minimumFee(ctx.app, baseFee, ctx.view.fees(), ctx.flags); - // Only check fee is sufficient when the ledger is open. - if (ctx.view.open() && feePaid < feeDue) + if (ctx.view.open()) { - JLOG(ctx.j.trace()) << "Insufficient fee paid: " << to_string(feePaid) - << "/" << to_string(feeDue); - return telINSUF_FEE_P; + auto const feeDue = + minimumFee(ctx.app, baseFee, ctx.view.fees(), ctx.flags); + + if (feePaid < feeDue) + { + JLOG(ctx.j.trace()) + << "Insufficient fee paid: " << to_string(feePaid) << "/" + << to_string(feeDue); + return telINSUF_FEE_P; + } } if (feePaid == beast::zero) diff --git a/src/ripple/core/impl/JobQueue.cpp b/src/ripple/core/impl/JobQueue.cpp index d87664416..fc50ff603 100644 --- a/src/ripple/core/impl/JobQueue.cpp +++ b/src/ripple/core/impl/JobQueue.cpp @@ -168,15 +168,13 @@ JobQueue::addLoadEvents(JobType t, int count, std::chrono::milliseconds elapsed) bool JobQueue::isOverloaded() { - int count = 0; - for (auto& x : m_jobData) { if (x.second.load().isOver()) - ++count; + return true; } - return count > 0; + return false; } Json::Value