]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: report clients laggy due laggy OSDs only after checking any OSD is laggy
authorDhairya Parmar <dparmar@redhat.com>
Thu, 5 Oct 2023 12:11:38 +0000 (17:41 +0530)
committerDhairya Parmar <dparmar@redhat.com>
Wed, 11 Oct 2023 13:42:49 +0000 (19:12 +0530)
Fixes: https://tracker.ceph.com/issues/63105
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
src/mds/Beacon.cc

index 861cfa4378f14598ffe6f8185fb96bb181de0932..4990f0b249f94856aeb0106fbcb6d1f250760842 100644 (file)
@@ -500,13 +500,17 @@ void Beacon::notify_health(MDSRank const *mds)
 
   // Report laggy client(s) due to laggy OSDs
   {
+    bool defer_client_eviction =
+    g_conf().get_val<bool>("defer_client_eviction_on_laggy_osds")
+    && mds->objecter->with_osdmap([](const OSDMap &map) {
+      return map.any_osd_laggy(); });
     auto&& laggy_clients = mds->server->get_laggy_clients();
-    if (!laggy_clients.empty()) {
+    if (defer_client_eviction && !laggy_clients.empty()) {
       std::vector<MDSHealthMetric> laggy_clients_metrics;
       for (const auto& laggy_client: laggy_clients) {
         CachedStackStringStream css;
         *css << "Client " << laggy_client << " is laggy; not evicted"
-            << " because some OSD(s) is/are laggy";
+             << " because some OSD(s) is/are laggy";
         MDSHealthMetric m(MDS_HEALTH_CLIENTS_LAGGY, HEALTH_WARN, css->strv());
         laggy_clients_metrics.emplace_back(std::move(m));
       }