]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: update MDSRank::cluster_degraded before handling mds failure 23180/head
authorYan, Zheng <zyan@redhat.com>
Thu, 2 Aug 2018 02:05:12 +0000 (10:05 +0800)
committerYan, Zheng <zyan@redhat.com>
Fri, 3 Aug 2018 01:23:49 +0000 (09:23 +0800)
Migrator checks MDSRank::is_cluster_degraded() to decide if it needs to
send message to other mds. MDSRank::cluster_degraded should get updated
before calling Migrator::handle_mds_failure_or_stop().

Introduced by commit 7de9da4a "mds: handle discontinuous mdsmap"

Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
(cherry picked from commit 93458c7306c3822175ed3c048f0937af8f02c341)

src/mds/MDSRank.cc

index 4d473a7d6801ee81d6fd120f8f2317e7819bf009..f44ec1d126e75a8ad235dda80bccca6e8108e441 100644 (file)
@@ -1738,6 +1738,8 @@ void MDSRankDispatcher::handle_mds_map(
   if (g_conf->mds_dump_cache_on_map)
     mdcache->dump_cache();
 
+  cluster_degraded = mdsmap->is_degraded();
+
   // mdsmap and oldmap can be discontinuous. failover might happen in the missing mdsmap.
   // the 'restart' set tracks ranks that have restarted since the old mdsmap
   set<mds_rank_t> restart;
@@ -1896,7 +1898,6 @@ void MDSRankDispatcher::handle_mds_map(
     }
   }
 
-  cluster_degraded = mdsmap->is_degraded();
   if (oldmap->is_degraded() && !cluster_degraded && state >= MDSMap::STATE_ACTIVE) {
     dout(1) << "cluster recovered." << dendl;
     auto it = waiting_for_active_peer.find(MDS_RANK_NONE);