From 21458e88e40ed25e53cc234f7f705f9359c24147 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 13 Apr 2018 10:26:38 -0500 Subject: [PATCH] mon/OSDMonitor: prevent FLAG_CREATING from getting set pre-nautilus Signed-off-by: Sage Weil --- src/mon/OSDMonitor.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 4fefba9e90d2c..21bde5ba43515 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 -- 2.39.5