From: Patrick Donnelly Date: Wed, 6 Jan 2021 18:56:21 +0000 (-0800) Subject: mon/MDSMonitor: add missing frozen checks X-Git-Tag: v16.1.0~98^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F38791%2Fhead;p=ceph.git mon/MDSMonitor: add missing frozen checks This has no known impact on testing. Signed-off-by: Patrick Donnelly --- diff --git a/src/mon/MDSMonitor.cc b/src/mon/MDSMonitor.cc index 011b61fff9d6f..37941970f927a 100644 --- a/src/mon/MDSMonitor.cc +++ b/src/mon/MDSMonitor.cc @@ -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) {