From: Greg Farnum Date: Fri, 8 Jan 2021 22:17:07 +0000 (+0000) Subject: osd: osdmap: do not assert target_v when encoding in stretch mode X-Git-Tag: v17.0.0~123^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=dd63a3e21fb6d63b8951a6542fb09f98b79b8cd6;p=ceph.git osd: osdmap: do not assert target_v when encoding in stretch mode Again, this was an overly-strict safety check. It passed testing against (even old) userspace clients, but the kernel clients don't have all the same feature bits and so when encoding for them, we see lower target_v values and assert out erroneously. As before, monitors and OSDs that actually need to interpret this data are gated on cluster entry, so we don't need this safety check here. Signed-off-by: Greg Farnum --- diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index 6742352fb1278..10bfd47b2253c 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -3033,7 +3033,6 @@ void OSDMap::encode(ceph::buffer::list& bl, uint64_t features) const target_v = 6; } if (stretch_mode_enabled) { - ceph_assert(target_v >= 9); target_v = std::max((uint8_t)10, target_v); } ENCODE_START(target_v, 1, bl); // extended, osd-only data