From dd63a3e21fb6d63b8951a6542fb09f98b79b8cd6 Mon Sep 17 00:00:00 2001 From: Greg Farnum Date: Fri, 8 Jan 2021 22:17:07 +0000 Subject: [PATCH] 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 --- src/osd/OSDMap.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index 6742352fb12..10bfd47b225 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 -- 2.39.5