]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PG.cc: account for missing set irrespective of last_complete 26239/head
authorNeha Ojha <nojha@redhat.com>
Thu, 24 Jan 2019 20:46:49 +0000 (12:46 -0800)
committerPrashant D <pdhange@redhat.com>
Fri, 1 Feb 2019 04:27:53 +0000 (23:27 -0500)
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 <nojha@redhat.com>
(cherry picked from commit e6b1637e00a3e98e588e4b83a13db5703fb96fce)

src/osd/PG.cc

index 4bd7672fb5944a91f64449b89b8f27f1c1cca0eb..dbabe889bec7717f42d5161c6f0000265c92e5a3 100644 (file)
@@ -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