From: Sage Weil Date: Thu, 24 Sep 2015 15:38:41 +0000 (-0400) Subject: osd/PG: compensate for sloppy hobject scrub bounds from hammer X-Git-Tag: v9.1.0~65^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F6076%2Fhead;p=ceph.git osd/PG: compensate for sloppy hobject scrub bounds from hammer 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 --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index f217eb1faa64..fbe71cbb5abc 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -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 scrub(1);