From aa42c7151a3c7cd1b53c74d95bb36c9471d51cdb Mon Sep 17 00:00:00 2001 From: Neha Ojha Date: Fri, 2 Nov 2018 19:34:18 -0400 Subject: [PATCH] Revert "osd/PrimaryLogPG: fix potential pg-log overtrimming" This reverts commit 85a029a7242a1c6eef4e90ae246541e08207302a. Signed-off-by: Neha Ojha --- src/osd/PrimaryLogPG.cc | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index 07a0c9ddb4914..0a7841db318ed 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -1593,30 +1593,19 @@ void PrimaryLogPG::calc_trim_to() cct->_conf->osd_pg_log_trim_max >= cct->_conf->osd_pg_log_trim_min) { return; } - auto it = pg_log.get_log().log.begin(); // oldest log entry - auto rit = pg_log.get_log().log.rbegin(); - eversion_t by_n_to_keep; // start from tail - eversion_t by_n_to_trim = eversion_t::max(); // start from head - for (size_t i = 0; it != pg_log.get_log().log.end(); ++it, ++rit) { - i++; - if (i > target && by_n_to_keep == eversion_t()) { - by_n_to_keep = rit->version; - } - if (i >= num_to_trim && by_n_to_trim == eversion_t::max()) { - by_n_to_trim = it->version; - } - if (by_n_to_keep != eversion_t() && - by_n_to_trim != eversion_t::max()) { - break; + list::const_iterator it = pg_log.get_log().log.begin(); + eversion_t new_trim_to; + for (size_t i = 0; i < num_to_trim; ++i) { + new_trim_to = it->version; + ++it; + if (new_trim_to >= limit) { + new_trim_to = limit; + dout(10) << "calc_trim_to trimming to limit: " << limit << dendl; + break; } } - - if (by_n_to_keep == eversion_t()) { - return; - } - - pg_trim_to = std::min({by_n_to_keep, by_n_to_trim, limit}); - dout(10) << __func__ << " pg_trim_to now " << pg_trim_to << dendl; + dout(10) << "calc_trim_to " << pg_trim_to << " -> " << new_trim_to << dendl; + pg_trim_to = new_trim_to; assert(pg_trim_to <= pg_log.get_head()); } } -- 2.39.5