From e6b1637e00a3e98e588e4b83a13db5703fb96fce Mon Sep 17 00:00:00 2001 From: Neha Ojha Date: Thu, 24 Jan 2019 12:46:49 -0800 Subject: [PATCH] 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 --- src/osd/PG.cc | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index bac79a1cbbf..8f19050a5e7 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -697,12 +697,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 -- 2.47.3