The only usage was for identyfing map gaps on new intervals.
We should use max_oldest_stored_osdmap() instead, since a specific
osd's oldest_map may lag behind.
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit
2541b49927670927fc34acf4af712fdb9f7a5bf7)
void on_active_advmap(const OSDMapRef &osdmap) final {
// Not needed yet
}
- epoch_t oldest_stored_osdmap() final {
- // TODO
- return 0;
- }
epoch_t max_oldest_stored_osdmap() final {
// TODO
m_scrubber->on_maybe_registration_change(m_planned_scrub);
}
-epoch_t PG::oldest_stored_osdmap() {
- return osd->get_superblock().oldest_map;
-}
-
epoch_t PG::max_oldest_stored_osdmap() {
return osd->get_superblock().max_oldest_map;
}
void clear_publish_stats() override;
void clear_primary_state() override;
- epoch_t oldest_stored_osdmap() override;
epoch_t max_oldest_stored_osdmap() override;
OstreamTemp get_clog_error() override;
OstreamTemp get_clog_info() override;
psdout(10) << __func__ << ": check_new_interval output: "
<< debug.str() << dendl;
if (new_interval) {
- if (osdmap->get_epoch() == pl->oldest_stored_osdmap() &&
+ if (osdmap->get_epoch() == pl->max_oldest_stored_osdmap() &&
info.history.last_epoch_clean < osdmap->get_epoch()) {
psdout(10) << " map gap, clearing past_intervals and faking" << dendl;
// our information is incomplete and useless; someone else was clean
// ==================== Std::map notifications ===================
virtual void on_active_actmap() = 0;
virtual void on_active_advmap(const OSDMapRef &osdmap) = 0;
- virtual epoch_t oldest_stored_osdmap() = 0;
virtual epoch_t max_oldest_stored_osdmap() = 0;
// ============ recovery reservation notifications ==========