From: Neha Ojha Date: Thu, 24 Jan 2019 20:46:49 +0000 (-0800) Subject: osd/PG.cc: account for missing set irrespective of last_complete X-Git-Tag: v12.2.12~100^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=29f25be780dd576f897d8cb12339bb6cf5fa35a6;p=ceph.git osd/PG.cc: account for missing set irrespective of last_complete When adding source info from another OSD, check if an object that needs recovery is present in its missing set. If yes, do not include the OSD as a missing loc. Fixes: http://tracker.ceph.com/issues/37919 Signed-off-by: Neha Ojha (cherry picked from commit e6b1637e00a3e98e588e4b83a13db5703fb96fce) --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 7965757d7bd..f48d3ec0369 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -682,12 +682,10 @@ bool PG::MissingLoc::add_source_info( << ")" << dendl; continue; } - if (oinfo.last_complete < need) { - if (omissing.is_missing(soid)) { - ldout(pg->cct, 10) << "search_for_missing " << soid << " " << need - << " also missing on osd." << fromosd << dendl; - continue; - } + if (omissing.is_missing(soid)) { + ldout(pg->cct, 10) << "search_for_missing " << soid << " " << need + << " also missing on osd." << fromosd << dendl; + continue; } ldout(pg->cct, 10) << "search_for_missing " << soid << " " << need