From: Sage Weil Date: Thu, 5 Oct 2017 20:26:16 +0000 (-0500) Subject: src/messages/MOSDMap: reencode OSDMap for older clients X-Git-Tag: v12.2.2~165^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F18140%2Fhead;p=ceph.git src/messages/MOSDMap: reencode OSDMap for older clients 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 (cherry picked from commit d2664aa34dc4c13da64d1ad187019737080069d7) --- diff --git a/src/messages/MOSDMap.h b/src/messages/MOSDMap.h index 72246288a514..fa46189bf050 100644 --- a/src/messages/MOSDMap.h +++ b/src/messages/MOSDMap.h @@ -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