]> 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>
Fri, 20 Oct 2023 10:51:09 +0000 (16:21 +0530)
Fixes: https://tracker.ceph.com/issues/63105
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
(cherry picked from commit 8a5677f956d1b18ebae22c27b690b83e82db13cc)

src/mds/Beacon.cc

index 76e71f2fe6e556169a3292acf3c2b424015a165f..ffd3056b697cf1c8c544433c320ca345ce0c88d4 100644 (file)
@@ -481,13 +481,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));
       }