From: Sage Weil Date: Fri, 19 Dec 2014 00:49:06 +0000 (-0800) Subject: osd: only verfy OSDMap crc if it is known X-Git-Tag: v0.91~28^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F3210%2Fhead;p=ceph.git osd: only verfy OSDMap crc if it is known Only verify we encode a full map with the correct CRC if we actually have the value in the Incremental. Otherwise, any map from an old mon will fail. And we'll try to request a full map with a message the old mon doesn't understand. Signed-off-by: Sage Weil --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 5b47f53e2b7..a31e1077b30 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -6106,7 +6106,7 @@ void OSD::handle_osd_map(MOSDMap *m) injected_failure = true; } - if (o->get_crc() != inc.full_crc || injected_failure) { + if ((inc.have_crc && o->get_crc() != inc.full_crc) || injected_failure) { dout(2) << "got incremental " << e << " but failed to encode full with correct crc; requesting" << dendl;