From 7951f0596e1aa17c2a392be9dfd14bb2954b10d7 Mon Sep 17 00:00:00 2001 From: Kamoltat Date: Wed, 31 Jan 2024 15:25:10 +0000 Subject: [PATCH] src/osd/OSDMap.cc: Fix encoder to produce same bytestream Fixes: https://tracker.ceph.com/issues/63389 Signed-off-by: Kamoltat (cherry picked from commit a3bdffb4e0366af8288258539f17bafeae17e3c4) (cherry picked from commit e9880fefda543d9d785dba89fe90c5e5074bb62a) --- src/osd/OSDMap.cc | 11 +++++++---- src/osd/OSDMap.h | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index 7a97f33e3786d..11f9a87d7b861 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -587,9 +587,9 @@ void OSDMap::Incremental::encode(ceph::buffer::list& bl, uint64_t features) cons v = 5; } else if (!HAVE_FEATURE(features, SERVER_NAUTILUS)) { v = 6; - } /* else if (!HAVE_FEATURE(features, SERVER_REEF)) { + } else if (!HAVE_FEATURE(features, SERVER_REEF)) { v = 8; - } */ + } ENCODE_START(v, 1, bl); // client-usable data encode(fsid, bl); encode(epoch, bl); @@ -2977,6 +2977,9 @@ bool OSDMap::primary_changed_broken( uint64_t OSDMap::get_encoding_features() const { uint64_t f = SIGNIFICANT_FEATURES; + if (require_osd_release < ceph_release_t::reef) { + f &= ~CEPH_FEATURE_SERVER_REEF; + } if (require_osd_release < ceph_release_t::octopus) { f &= ~CEPH_FEATURE_SERVER_OCTOPUS; } @@ -3156,9 +3159,9 @@ void OSDMap::encode(ceph::buffer::list& bl, uint64_t features) const v = 6; } else if (!HAVE_FEATURE(features, SERVER_NAUTILUS)) { v = 7; - } /* else if (!HAVE_FEATURE(features, SERVER_REEF)) { + } else if (!HAVE_FEATURE(features, SERVER_REEF)) { v = 9; - } */ + } ENCODE_START(v, 1, bl); // client-usable data // base encode(fsid, bl); diff --git a/src/osd/OSDMap.h b/src/osd/OSDMap.h index 3ca12901ac632..3a3e6155ee993 100644 --- a/src/osd/OSDMap.h +++ b/src/osd/OSDMap.h @@ -564,7 +564,8 @@ private: CEPH_FEATUREMASK_SERVER_LUMINOUS | CEPH_FEATUREMASK_SERVER_MIMIC | CEPH_FEATUREMASK_SERVER_NAUTILUS | - CEPH_FEATUREMASK_SERVER_OCTOPUS; + CEPH_FEATUREMASK_SERVER_OCTOPUS | + CEPH_FEATUREMASK_SERVER_REEF; struct addrs_s { mempool::osdmap::vector > client_addrs; -- 2.39.5