From: Sage Weil Date: Fri, 13 Apr 2018 15:26:38 +0000 (-0500) Subject: mon/OSDMonitor: prevent FLAG_CREATING from getting set pre-nautilus X-Git-Tag: v14.0.1~371^2~43 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=21458e88e40ed25e53cc234f7f705f9359c24147;p=ceph.git mon/OSDMonitor: prevent FLAG_CREATING from getting set pre-nautilus Signed-off-by: Sage Weil --- diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 4fefba9e90d..21bde5ba435 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -1076,8 +1076,14 @@ void OSDMonitor::encode_pending(MonitorDBStore::TransactionRef t) encode(pending_creatings, creatings_bl); t->put(OSD_PG_CREATING_PREFIX, "creating", creatings_bl); - // remove any old POOL_CREATING flags + // remove any old (or incompat) POOL_CREATING flags for (auto& i : tmp.get_pools()) { + if (tmp.require_osd_release < CEPH_RELEASE_NAUTILUS) { + // pre-nautilus OSDMaps shouldn't get this flag. + if (pending_inc.new_pools.count(i.first)) { + pending_inc.new_pools[i.first].flags &= ~pg_pool_t::FLAG_CREATING; + } + } if (i.second.has_flag(pg_pool_t::FLAG_CREATING) && !pending_creatings.still_creating_pool(i.first)) { dout(10) << __func__ << " done creating pool " << i.first