From: Sage Weil Date: Thu, 30 Jan 2014 23:13:05 +0000 (-0800) Subject: mon/OSDMonitor: encode full OSDMap with same feature bits as the Incremental X-Git-Tag: v0.78~239^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F1171%2Fhead;p=ceph.git 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 --- diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index c73a2845812..8bf63ccdc5a 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);