]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/MDSMonitor: add missing frozen checks 38791/head
authorPatrick Donnelly <pdonnell@redhat.com>
Wed, 6 Jan 2021 18:56:21 +0000 (10:56 -0800)
committerPatrick Donnelly <pdonnell@redhat.com>
Wed, 6 Jan 2021 18:56:21 +0000 (10:56 -0800)
This has no known impact on testing.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/mon/MDSMonitor.cc

index 011b61fff9d6fdaf257a27d615ec0a1d33e3f74f..37941970f927a9391b6b1731b6e99604d74f2aa7 100644 (file)
@@ -1233,6 +1233,11 @@ bool MDSMonitor::fail_mds_gid(FSMap &fsmap, mds_gid_t gid)
   const auto& info = fsmap.get_info_gid(gid);
   dout(1) << "fail_mds_gid " << gid << " mds." << info.name << " role " << info.rank << dendl;
 
+  if (info.is_frozen()) {
+    dout(1) << "mds is frozen" << dendl;
+    return false;
+  }
+
   ceph_assert(mon.osdmon()->is_writeable());
 
   epoch_t blocklist_epoch = 0;
@@ -1995,7 +2000,10 @@ bool MDSMonitor::maybe_resize_cluster(FSMap &fsmap, fs_cluster_id_t fscid)
   } else if (in > max) {
     mds_rank_t target = in - 1;
     const auto &info = mds_map.get_info(target);
-    if (mds_map.is_active(target)) {
+    if (info.is_frozen()) {
+      dout(1) << "highest rank is frozen" << dendl;
+      return false;
+    } else if (mds_map.is_active(target)) {
       dout(1) << "stopping " << target << dendl;
       mon.clog->info() << "stopping " << info.human_name();
       auto f = [](auto& info) {