From cdccf1106e453e8df933bb5fc418f4c70ba54ffc Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 24 Sep 2015 11:38:41 -0400 Subject: [PATCH] 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 --- src/osd/PG.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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); -- 2.47.3