From 929f78ab895e63667c36e57cc44d14a1402f4f9d Mon Sep 17 00:00:00 2001 From: David Zafman Date: Wed, 1 Aug 2018 16:12:16 -0700 Subject: [PATCH] osd: do_sparse_read(): On Checksum mismatch try to repair Fixes: http://tracker.ceph.com/issues/24875 Signed-off-by: David Zafman --- src/osd/PrimaryLogPG.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index fc63d2a60b2db..4d3e131c0a30b 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -5584,8 +5584,10 @@ int PrimaryLogPG::do_sparse_read(OpContext *ctx, OSDOp& osd_op) { << " full-object read crc 0x" << crc << " != expected 0x" << oi.data_digest << std::dec << " on " << soid; - // FIXME fall back to replica or something? - return -EIO; + r = rep_repair_primary_object(soid, ctx->op); + if (r < 0) { + return r; + } } } -- 2.39.5