From 09207865b1cdf5e50162af403e0e49493acbcab4 Mon Sep 17 00:00:00 2001 From: Jon Date: Mon, 6 Oct 2025 11:00:56 +0100 Subject: [PATCH] Check last update and last epoch started are in acceptable range before deciding to keep stats for a shard. Signed-off-by: Jon Bailey --- src/osd/PeeringState.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/osd/PeeringState.cc b/src/osd/PeeringState.cc index bb1160d01d8..0ee1274710b 100644 --- a/src/osd/PeeringState.cc +++ b/src/osd/PeeringState.cc @@ -3496,9 +3496,18 @@ void PeeringState::proc_master_log( if (invalidate_stats) { + epoch_t max_last_epoch_started; + eversion_t min_last_update_acceptable; + map all_info(peer_info.begin(), peer_info.end()); + all_info[pg_whoami] = info; + calculate_maxles_and_minlua(all_info, + max_last_epoch_started, + min_last_update_acceptable); for (const auto& [shard, my_info] : peer_info) { - if (invalidate_stats && stats_last_update[shard] == olog.head) + if (invalidate_stats && stats_last_update[shard] == olog.head && + my_info.last_update >= min_last_update_acceptable && + my_info.last_epoch_started >= max_last_epoch_started) { oinfo.stats = my_info.stats; invalidate_stats = false; -- 2.39.5