]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
tools/ceph_monstore_tool: include mgrmap in initial paxos epoch 19780/head
authorKefu Chai <kchai@redhat.com>
Thu, 4 Jan 2018 05:06:52 +0000 (13:06 +0800)
committerKefu Chai <kchai@redhat.com>
Thu, 4 Jan 2018 13:21:55 +0000 (21:21 +0800)
before this change, the "mgr" map is not included paxos, thus why the
peon mon fails to have the mgr map after it is sync'ed with its leader.
and hence there is chance that ceph-mgr is unable to get a mgr map from
the monitor it is connected to.

Fixes: http://tracker.ceph.com/issues/22266
Signed-off-by: Kefu Chai <kchai@redhat.com>
src/tools/ceph_monstore_tool.cc

index 3d35d2cd6fbb4b66b1ab5d7c26b70956c264f310..7fbfb6c17bbcf84992e883bad64a81eab198e47c 100644 (file)
@@ -591,6 +591,9 @@ static int update_monitor(MonitorDBStore& st)
   return 0;
 }
 
+// rebuild
+//  - mgr
+//  - mgr_command_desc
 static int update_mgrmap(MonitorDBStore& st)
 {
   auto t = make_shared<MonitorDBStore::Transaction>();
@@ -731,6 +734,9 @@ int rebuild_monstore(const char* progname,
   if ((r = update_pgmap_meta(st))) {
     return r;
   }
+  if ((r = update_mgrmap(st))) {
+    return r;
+  }
   if ((r = update_paxos(st))) {
     return r;
   }
@@ -740,9 +746,6 @@ int rebuild_monstore(const char* progname,
   if ((r = update_monitor(st))) {
     return r;
   }
-  if ((r = update_mgrmap(st))) {
-    return r;
-  }
   return 0;
 }