From 0389f1d62dfdc055033d436de73bf13fb96aaf9b Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 30 Jan 2014 15:13:05 -0800 Subject: [PATCH] mon/OSDMonitor: encode full OSDMap with same feature bits as the Incremental Each monitor is independently encoding the full OSDMap and storing it in its local store. Sometime this happens when we do not have a valid value for quorum_features (for example, it can happen during sync). Instead, use the feature bits the Incremental was encoded with for the full OSDMap so that they always match. Note that this conveniently the *only* place in the mon where we encode the full OSDMap, so we're capturing all paths. Yay! Signed-off-by: Sage Weil --- src/mon/OSDMonitor.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index c73a28458124..8bf63ccdc5a8 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -203,7 +203,7 @@ void OSDMonitor::update_from_paxos(bool *need_bootstrap) // write out the full map for all past epochs bufferlist full_bl; - osdmap.encode(full_bl, mon->quorum_features); + osdmap.encode(full_bl, inc.encode_features); tx_size += full_bl.length(); put_version_full(t, osdmap.epoch, full_bl); -- 2.47.3