]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: only verfy OSDMap crc if it is known 3210/head
authorSage Weil <sage@redhat.com>
Fri, 19 Dec 2014 00:49:06 +0000 (16:49 -0800)
committerSage Weil <sage@redhat.com>
Fri, 19 Dec 2014 00:49:06 +0000 (16:49 -0800)
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 <sage@redhat.com>
src/osd/OSD.cc

index 5b47f53e2b77897d4c84c94fba7641884227fa3c..a31e1077b305cde79314a6dea1508dde602a4ff8 100644 (file)
@@ -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;