]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PG.cc: account for missing set irrespective of last_complete 26236/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 01:36:02 +0000 (20:36 -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 7965757d7bd461a3d110d96c750d4ed3987ca64a..f48d3ec03694899e2ad9144104bf83d18db47d83 100644 (file)
@@ -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