Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
osd/PG: discover unfound objects if PG is degraded
When a PG is remapped from OSD `a` to OSD `b`, the objects are backfilled. When OSD `a` is restarted, objects become degraded as `a` is no longer queried or considered as a backfill source. The discovery is done with `PG::discover_all_missing`, which is called from `PG::activate` (which is not called since the PG is already active), from `PG::find_unfound` (which is not called as there are no unfound objects). It's also called from `PG::RecoveryState::Active::react(const ActMap&)` and `PG::RecoveryState::Active::react(const MNotifyRec& notevt)` but only if there are unfound objects. This patch introduces a call to `discover_all_missing` when the PG is degraded. The degraded objects can be restored. Fixes: https://tracker.ceph.com/issues/37439 Signed-off-by: Jonas Jelten <jj@stusta.net>
- Loading branch information