From: Sage Weil Date: Mon, 19 Aug 2019 21:32:22 +0000 (-0500) Subject: osd/PeeringState: do not complain about past_intervals constrained by oldest epoch X-Git-Tag: v13.2.7~161^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F30222%2Fhead;p=ceph.git osd/PeeringState: do not complain about past_intervals constrained by oldest epoch The start of the required interval has a floor set by the oldest osdmap epoch we have. That can lead to an invalid/empty required interval (because the start is >= the end), but the PG may still have past intervals. That can be cause by a slow PG deletion. No need to complain about this harmless condition. Fixes: https://tracker.ceph.com/issues/39546 Signed-off-by: Sage Weil (cherry picked from commit b1396774a40b7b3e54c9f52b6bb6f03d31c35401) Conflicts: src/osd/PeeringState.cc - file does not exist in mimic; made the changes manually in src/osd/PG.cc - mimic has a different way of getting the oldest osdmap --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index bef321394012..ebbf71ff19a7 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -896,11 +896,15 @@ bool PG::needs_backfill() const void PG::check_past_interval_bounds() const { + auto oldest_epoch = osd->get_superblock().oldest_map; auto rpib = get_required_past_interval_bounds( info, - osd->get_superblock().oldest_map); + oldest_epoch); if (rpib.first >= rpib.second) { - if (!past_intervals.empty()) { + // do not warn if the start bound is dictated by oldest_map; the + // past intervals are presumably appropriate given the pg info. + if (!past_intervals.empty() && + rpib.first > oldest_epoch) { osd->clog->error() << info.pgid << " required past_interval bounds are" << " empty [" << rpib << ") but past_intervals is not: " << past_intervals;