]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
PG: reset async_recovery_targets after recovery
authorNeha Ojha <nojha@redhat.com>
Sun, 21 Jan 2018 20:50:51 +0000 (12:50 -0800)
committerNeha Ojha <nojha@redhat.com>
Wed, 14 Mar 2018 22:56:05 +0000 (15:56 -0700)
Signed-off-by: Neha Ojha <nojha@redhat.com>
src/osd/PG.cc
src/osd/PGLog.h

index 3c7f7a9fc2e56d63ee6c0aa9dcf210d2d41f98ae..f9b291145f7427c0122b0a58021d4b61a4ebf3de 100644 (file)
@@ -1706,8 +1706,9 @@ bool PG::choose_acting(pg_shard_t &auth_log_shard_id,
     // Caller is GetInfo
     backfill_targets = want_backfill;
   }
-  assert(async_recovery_targets.empty() || async_recovery_targets == want_async_recovery);
-  if (async_recovery_targets.empty()) {
+  // Adding !needs_recovery() to let the async_recovery_targets reset after recovery is complete
+  assert(async_recovery_targets.empty() || async_recovery_targets == want_async_recovery || !needs_recovery());
+  if (async_recovery_targets.empty() || !needs_recovery()) {
     async_recovery_targets = want_async_recovery;
   }
   // Will not change if already set because up would have had to change
index 73c58499b6991df1892a333bedb626548c43856e..1b889ee0aaea2d557d0dd426182454ed42f462a9 100644 (file)
@@ -1407,6 +1407,7 @@ public:
            }
          } else {
            ldpp_dout(dpp, 15) << "read_log_and_missing  missing " << *i << dendl;
+           ldpp_dout(dpp, 15) << " missing set " << missing.get_items() << dendl;
            if (debug_verify_stored_missing) {
              auto miter = missing.get_items().find(i->soid);
              if (i->is_delete()) {