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 missing objects when an OSD peers and 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. As the PG is degraded, `PG::discover_all_missing` is not called when a candidate OSD peers with the primary: The PG is already active, thus `PG::activate` (and in turn missing object discovery) is not called. Discovery is also not initiated from `PG::RecoveryState::Active::react(const MNotifyRec& notevt)` as there are no unfound objects. This patch adds a call to `discover_all_missing` when when an OSD sends its `MNotifyRec` message and the PG is degraded. Fixes: https://tracker.ceph.com/issues/37439 Signed-off-by: Jonas Jelten <jj@stusta.net>
- Loading branch information