From: Neha Ojha Date: Sun, 21 Jan 2018 20:50:51 +0000 (-0800) Subject: PG: reset async_recovery_targets after recovery X-Git-Tag: v13.1.0~548^2~16 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=853655a559cd6fc91087206cbc9373c2dc3292d9;p=ceph.git PG: reset async_recovery_targets after recovery Signed-off-by: Neha Ojha --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 3c7f7a9fc2e5..f9b291145f74 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -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 diff --git a/src/osd/PGLog.h b/src/osd/PGLog.h index 73c58499b699..1b889ee0aaea 100644 --- a/src/osd/PGLog.h +++ b/src/osd/PGLog.h @@ -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()) {