]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
src/osd/OSDMap.cc: Fix encoder to produce same bytestream 55401/head
authorKamoltat <ksirivad@redhat.com>
Wed, 31 Jan 2024 15:25:10 +0000 (15:25 +0000)
committerKamoltat <ksirivad@redhat.com>
Wed, 31 Jan 2024 15:25:10 +0000 (15:25 +0000)
Fixes: https://tracker.ceph.com/issues/63389
Signed-off-by: Kamoltat <ksirivad@redhat.com>
src/osd/OSDMap.cc
src/osd/OSDMap.h

index 4cd9bff444169a311f37e6fde3365bceab8cce48..aaa7a66a4974f112412aa0fbdfe167afdf82f64b 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);
@@ -3015,6 +3015,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;
   }
@@ -3194,9 +3197,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 e37aeafc431203a938e93817a96188b661f35fd1..f54667cbc0ed59f38694a8360f906c0fcd6a7570 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;