From 0dc73f12105ec271a43fe176c2f2a22849e8475c Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 5 Oct 2017 15:26:16 -0500 Subject: [PATCH] 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) --- src/messages/MOSDMap.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/messages/MOSDMap.h b/src/messages/MOSDMap.h index 72246288a5149..fa46189bf0504 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 -- 2.39.5