]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
MDSMonitor: wait for readable OSDMap before sanitizing 18628/head
authorPatrick Donnelly <pdonnell@redhat.com>
Fri, 27 Oct 2017 20:20:07 +0000 (13:20 -0700)
committerPatrick Donnelly <pdonnell@redhat.com>
Mon, 30 Oct 2017 21:01:27 +0000 (14:01 -0700)
Fixes: http://tracker.ceph.com/issues/21945
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit ca52f3bd93e6c743aa05171108527d877807b426)

src/mon/MDSMonitor.cc

index 985c78b88dc7d1d8dca1de1c4e3d12f41bc0be7a..dd8db062ad40ff98451b9f1edd8f3b4f44b9d21c 100644 (file)
@@ -111,8 +111,6 @@ void MDSMonitor::update_from_paxos(bool *need_bootstrap)
   assert(fsmap_bl.length() > 0);
   dout(10) << __func__ << " got " << version << dendl;
   fsmap.decode(fsmap_bl);
-  auto &osdmap = mon->osdmon()->osdmap;
-  fsmap.sanitize([&osdmap](int64_t pool){return osdmap.have_pg_pool(pool);});
 
   // new map
   dout(4) << "new map" << dendl;
@@ -135,6 +133,11 @@ void MDSMonitor::create_pending()
   pending_fsmap = fsmap;
   pending_fsmap.epoch++;
 
+  if (mon->osdmon()->is_readable()) {
+    auto &osdmap = mon->osdmon()->osdmap;
+    pending_fsmap.sanitize([&osdmap](int64_t pool){return osdmap.have_pg_pool(pool);});
+  }
+
   dout(10) << "create_pending e" << pending_fsmap.epoch << dendl;
 }