]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
Check last update and last epoch started are in acceptable range before deciding...
authorJon <jonathan.bailey1@ibm.com>
Mon, 6 Oct 2025 10:00:56 +0000 (11:00 +0100)
committerJon <jonathan.bailey1@ibm.com>
Mon, 6 Oct 2025 10:00:56 +0000 (11:00 +0100)
Signed-off-by: Jon Bailey <jonathan.bailey1@ibm.com>
src/osd/PeeringState.cc

index bb1160d01d8f480b5ba512e2ce9fd46a04950c1b..0ee1274710be3aae495b9f148552ab2493e9b5e3 100644 (file)
@@ -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<pg_shard_t, pg_info_t> 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;