]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr: remove health msgs from the metrics if osd destroyed
authorNitzan Mordechai <nmordech@redhat.com>
Sun, 7 Sep 2025 12:41:55 +0000 (12:41 +0000)
committerNitzan Mordechai <nmordech@redhat.com>
Tue, 16 Sep 2025 10:07:46 +0000 (10:07 +0000)
clears daemon health metrics for destroyed osds alon with down and out OSDs

Fixes: https://tracker.ceph.com/issues/72899
Signed-off-by: Nitzan Mordechai <nmordech@redhat.com>
src/mgr/Mgr.cc

index 0225527c5eda31790a4170976bdceaa851d31a2f..d024d78b20e082916502c1efebe1f980f4c67955 100644 (file)
@@ -516,9 +516,15 @@ void Mgr::handle_osd_map()
         
       DaemonStatePtr daemon = daemon_state.get(k);
         
-      if (daemon && osd_map.is_out(osd_id) && osd_map.is_down(osd_id)) {
-        std::lock_guard l(daemon->lock);
-        daemon->daemon_health_metrics.clear();
+      if (daemon) {
+        bool clear_metrics = false;
+        clear_metrics |= (osd_map.is_out(osd_id) && osd_map.is_down(osd_id));
+        clear_metrics |= osd_map.is_destroyed(osd_id);
+        if (clear_metrics) {
+          // clear any health metrics for an OSD that is (out and down) or destroyed
+          std::lock_guard l(daemon->lock);
+          daemon->daemon_health_metrics.clear();
+        }
       }
 
       bool update_meta = false;