]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: MonMap: do not increase mon_info_t's compatv in stretch mode, for real 43971/head
authorGreg Farnum <gfarnum@redhat.com>
Thu, 11 Nov 2021 20:20:11 +0000 (20:20 +0000)
committerGreg Farnum <gfarnum@redhat.com>
Tue, 16 Nov 2021 18:24:19 +0000 (18:24 +0000)
This was supposed to be fixed a year ago in commit
2e3643647bfbe955b54c62c8aaf114744dedb86e, but it set compat_v to 4 instead of all
the way back to 1 as it should have.

Our testing for stretch mode in these areas is just not very thorough -- the
kernel only supports compat_v 1 and apparently nobody's noticed the issue
since then? :/
As the prior commit says, you can't set locations without being gated on a
server feature bit, so simply cancelling this enforcement is completely safe.

Fixes: https://tracker.ceph.com/issues/53237
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
(cherry picked from commit ccb1b7eb8baf5f222109e77c168db39e699b6934)

src/mon/MonMap.cc

index 14700ec1f6ccc8d565487c7649929f105d2b529a..fbbcd23da0e49b50fa0639fae42343b828163bac 100644 (file)
@@ -42,10 +42,10 @@ void mon_info_t::encode(ceph::buffer::list& bl, uint64_t features) const
   uint8_t min_v = 1;
   if (!crush_loc.empty()) {
     // we added crush_loc in version 5, but need to let old clients decode it
-    // so just leave the min_v at version 4. Monitors are protected
+    // so just leave the min_v at version 1. Monitors are protected
     // from misunderstandings about location because setting it is blocked
     // on FEATURE_PINGING
-    min_v = 4;
+    min_v = 1;
   }
   if (!HAVE_FEATURE(features, SERVER_NAUTILUS)) {
     v = 2;