]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: validate also mons and osds on {rm-,}pg-upmap-primary 59275/head
authorRadosław Zarzyński <rzarzyns@redhat.com>
Mon, 3 Jun 2024 13:43:51 +0000 (15:43 +0200)
committerKonstantin Shalygin <k0ste@k0ste.ru>
Sat, 17 Aug 2024 11:06:03 +0000 (18:06 +0700)
Fixes: https://tracker.ceph.com/issues/66329
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
(cherry picked from commit c3fd1deec2d20a18dcb0b3ec5ff89b0d22309672)

src/mon/OSDMonitor.cc

index 6543da85c4463e1b1b928f599d2cc2ea6bd13cdd..572165deae352feb311f9cace11deccfad93c811 100644 (file)
@@ -12234,25 +12234,27 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
 
     ceph_release_t min_release = ceph_release_t::unknown;
     string feature_name = "unknown";
+    uint64_t min_feature = CEPH_FEATURES_ALL; // paranoia
     switch (upmap_option) {
     case OP_PG_UPMAP:          // fall through
     case OP_RM_PG_UPMAP:       // fall through
     case OP_PG_UPMAP_ITEMS:    // fall through
     case OP_RM_PG_UPMAP_ITEMS:
       min_release = ceph_release_t::luminous;
+      min_feature = CEPH_FEATUREMASK_OSDMAP_PG_UPMAP;
       feature_name = "pg-upmap";
       break;
 
     case OP_PG_UPMAP_PRIMARY:  // fall through
     case OP_RM_PG_UPMAP_PRIMARY:
       min_release = ceph_release_t::reef;
+      min_feature = CEPH_FEATUREMASK_SERVER_REEF;
       feature_name = "pg-upmap-primary";
       break;
 
     default:
       ceph_abort_msg("invalid upmap option");
     }
-    uint64_t min_feature = CEPH_FEATUREMASK_OSDMAP_PG_UPMAP;
     string min_release_name = ceph_release_name(static_cast<int>(min_release));
 
     if (osdmap.require_min_compat_client < min_release) {
@@ -12265,7 +12267,6 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
       goto reply_no_propose;
     }
 
-    //TODO: Should I add feature and test for upmap-primary?
     err = check_cluster_features(min_feature, ss);
     if (err == -EAGAIN)
       goto wait;