From: Mykola Golub Date: Tue, 21 Sep 2021 10:28:31 +0000 (+0100) Subject: osd: no need to crash in deep scrub if hash info is invalid X-Git-Tag: v16.2.7~60^2~3 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=b39d8bfe84811b35b80d05f6d9340d8e7127b67f;p=ceph.git osd: no need to crash in deep scrub if hash info is invalid Signed-off-by: Mykola Golub (cherry picked from commit 104d8df5f44cf522422914b254536f42bbe31172) --- diff --git a/src/osd/ECBackend.cc b/src/osd/ECBackend.cc index a621ba3aa3ee6..b11ad496dcf0f 100644 --- a/src/osd/ECBackend.cc +++ b/src/osd/ECBackend.cc @@ -2587,7 +2587,11 @@ int ECBackend::be_deep_scrub( return 0; } else { if (!get_parent()->get_pool().allows_ecoverwrites()) { - ceph_assert(hinfo->has_chunk_hash()); + if (!hinfo->has_chunk_hash()) { + dout(0) << "_scan_list " << poid << " got invalid hash info" << dendl; + o.ec_size_mismatch = true; + return 0; + } if (hinfo->get_total_chunk_size() != (unsigned)pos.data_pos) { dout(0) << "_scan_list " << poid << " got incorrect size on read 0x" << std::hex << pos