]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: standy-replay mds remained in the "resolve" state after restart the active mds 37363/head
authorWei Qiaomiao <wei.qiaomiao@zte.com.cn>
Fri, 14 Aug 2020 17:37:56 +0000 (01:37 +0800)
committerNathan Cutler <ncutler@suse.com>
Wed, 23 Sep 2020 12:49:59 +0000 (14:49 +0200)
In multimds and standy-replay enabled Ceph cluster,after reduce a filesystem mds num and restart an active mds,
its standy-replay mds didn't enter into active state and remained in the "resolve" state.

Fixes: https://tracker.ceph.com/issues/46976
Signed-off-by: Wei Qiaomiao <wei.qiaomiao@zte.com.cn>
(cherry picked from commit a786d2543cddcd1e4fbb7a574b76c3a30ddbf512)

src/mds/MDSRank.cc

index e7ebee467e7acf7534b22dd696619c5d1b4c521a..7144fd2be50a349cea0a2d742a6793a0cad176a5 100644 (file)
@@ -1690,8 +1690,6 @@ void MDSRank::replay_start()
   if (is_standby_replay())
     standby_replaying = true;
 
-  calc_recovery_set();
-
   // Check if we need to wait for a newer OSD map before starting
   Context *fin = new C_IO_Wrapper(this, new C_MDS_BootStart(this, MDS_BOOT_INITIAL));
   bool const ready = objecter->wait_for_map(
@@ -1860,6 +1858,8 @@ void MDSRank::resolve_start()
 
   reopen_log();
 
+  calc_recovery_set();
+
   mdcache->resolve_start(new C_MDS_VoidFn(this, &MDSRank::resolve_done));
   finish_contexts(g_ceph_context, waiting_for_resolve);
 }