]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
src/osd/OSDMap.cc: Fix encoder to produce same bytestream
authorKamoltat <ksirivad@redhat.com>
Wed, 31 Jan 2024 15:25:10 +0000 (15:25 +0000)
committerYuri Weinstein <yweinste@redhat.com>
Wed, 28 Feb 2024 17:54:23 +0000 (17:54 +0000)
Fixes: https://tracker.ceph.com/issues/63389
Signed-off-by: Kamoltat <ksirivad@redhat.com>
(cherry picked from commit a3bdffb4e0366af8288258539f17bafeae17e3c4)
(cherry picked from commit e9880fefda543d9d785dba89fe90c5e5074bb62a)

src/osd/OSDMap.cc
src/osd/OSDMap.h

index 7a97f33e3786d5a6f471a2cf929072b659148146..11f9a87d7b861535635f93d9fbf61450c088d5c1 100644 (file)
@@ -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);
index 3ca12901ac63286d9c217a8e9550ca3a77b5ad9c..3a3e6155ee9933569c29a8dd647f898abdace0fb 100644 (file)
@@ -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<std::shared_ptr<entity_addrvec_t> > client_addrs;