]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PG: compensate for sloppy hobject scrub bounds from hammer 6076/head
authorSage Weil <sage@redhat.com>
Thu, 24 Sep 2015 15:38:41 +0000 (11:38 -0400)
committerSage Weil <sage@redhat.com>
Thu, 24 Sep 2015 15:38:41 +0000 (11:38 -0400)
Hammer is sloppy about the hobject_t's it uses for the scrub bounds in that
the pool isn't set.  (Hammer FileStore doesn't care, but post-hammer is
much more careful about this sort of thing.)

Compensate by setting the pool on any scrub messages we receive.

Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/PG.cc

index f217eb1faa643fd95bf84cac64d40de50bb14c0c..fbe71cbb5abce4a279e0594a9a4c5cfb5f903c21 100644 (file)
@@ -3647,8 +3647,14 @@ void PG::replica_scrub(
     return;
   }
 
+  // compensate for hobject_t's with wrong pool from sloppy hammer OSDs
+  hobject_t start = msg->start;
+  hobject_t end = msg->end;
+  start.pool = info.pgid.pool();
+  end.pool = info.pgid.pool();
+
   build_scrub_map_chunk(
-    map, msg->start, msg->end, msg->deep, msg->seed,
+    map, start, end, msg->deep, msg->seed,
     handle);
 
   vector<OSDOp> scrub(1);