]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
src/messages/MOSDMap: reencode OSDMap for older clients 18140/head
authorSage Weil <sage@redhat.com>
Thu, 5 Oct 2017 20:26:16 +0000 (15:26 -0500)
committerSage Weil <sage@redhat.com>
Thu, 5 Oct 2017 22:32:59 +0000 (17:32 -0500)
We explicitly select which missing bits trigger a reencode.  We
already had jewel and earlier covered, but kraken includes all of
the previously mentioned bits but not SERVER_LUMINOUS.  This
prevents kraken clients from decoding luminous maps.

Fixes: http://tracker.ceph.com/issues/21660
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit d2664aa34dc4c13da64d1ad187019737080069d7)

src/messages/MOSDMap.h

index 72246288a51493ca59db1636abd13f9fad3316aa..fa46189bf0504c6c811ef17a10b154732177b7ee 100644 (file)
@@ -86,7 +86,8 @@ public:
        (features & CEPH_FEATURE_PGPOOL3) == 0 ||
        (features & CEPH_FEATURE_OSDENC) == 0 ||
         (features & CEPH_FEATURE_OSDMAP_ENC) == 0 ||
-       (features & CEPH_FEATURE_MSG_ADDR2) == 0) {
+       (features & CEPH_FEATURE_MSG_ADDR2) == 0 ||
+       !HAVE_FEATURE(features, SERVER_LUMINOUS)) {
       if ((features & CEPH_FEATURE_PGID64) == 0 ||
          (features & CEPH_FEATURE_PGPOOL3) == 0)
        header.version = 1;  // old old_client version