Merge pull request #5900

6bbc646 Fix bug in mempool get_transaction_stats histogram calculation (tomsmeding)
This commit is contained in:
luigi1111 2019-09-30 18:49:09 -05:00
commit d9cb50870d
No known key found for this signature in database
GPG Key ID: F4ACA0183641E010

View File

@ -733,7 +733,7 @@ namespace cryptonote
if (meta.double_spend_seen) if (meta.double_spend_seen)
++stats.num_double_spends; ++stats.num_double_spends;
return true; return true;
}, false, include_unrelayed_txes); }, false, include_unrelayed_txes);
stats.bytes_med = epee::misc_utils::median(weights); stats.bytes_med = epee::misc_utils::median(weights);
if (stats.txs_total > 1) if (stats.txs_total > 1)
{ {
@ -746,8 +746,15 @@ namespace cryptonote
/* If enough txs, spread the first 98% of results across /* If enough txs, spread the first 98% of results across
* the first 9 bins, drop final 2% in last bin. * the first 9 bins, drop final 2% in last bin.
*/ */
it=agebytes.end(); it = agebytes.end();
for (size_t n=0; n <= end; n++, it--); size_t cumulative_num = 0;
/* Since agebytes is not empty and end is nonzero, the
* below loop can always run at least once.
*/
do {
--it;
cumulative_num += it->second.txs;
} while (it != agebytes.begin() && cumulative_num < end);
stats.histo_98pc = it->first; stats.histo_98pc = it->first;
factor = 9; factor = 9;
delta = it->first; delta = it->first;