]> git.apps.os.sepia.ceph.com Git - ceph-ci.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)
committerRadosław Zarzyński <rzarzyns@redhat.com>
Thu, 28 Mar 2024 10:51:23 +0000 (11:51 +0100)
Fixes: https://tracker.ceph.com/issues/63389
Signed-off-by: Kamoltat <ksirivad@redhat.com>
(cherry picked from commit a3bdffb4e0366af8288258539f17bafeae17e3c4)

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

index b5829bc3b71a7a18594a309ddf6ea7672b42d9a6..116ccea047f9150452fe264098960abc11ba10e0 100644 (file)
@@ -588,9 +588,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);
@@ -3021,6 +3021,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;
   }
@@ -3200,9 +3203,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 0378afdc186dd66dd3f726290c29cf5c970364d5..97d6b7e1b8bfe8b56c0dfa81df82d3127deafece 100644 (file)
@@ -570,7 +570,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;