]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd/PeeringState: re-evaluate full OSDs while waiting for recovery reservation 65701/head
authorNitzan Mordechai <nmordech@redhat.com>
Tue, 13 May 2025 10:00:45 +0000 (10:00 +0000)
committerNitzan Mordechai <nmordech@redhat.com>
Sun, 28 Sep 2025 05:00:00 +0000 (05:00 +0000)
commitd2225b28868bbbd693239e5a7139b9b43bbb076d
treeffa4ed344ace50edd132314ee7904c0a8805301d
parent7a9a6955a5afd71eb3f1e41292564cd91a56d962
osd/PeeringState: re-evaluate full OSDs while waiting for recovery reservation

A PG can enter *Wait{Local,Remote}RecoveryReserved* before the OSD-map
marks one of its acting OSDs as full, causing us to miss the
recovery_toofull state and stall recovery until a later admin action.

Add react(AdvMap) handlers to both wait states: on every new map,
re-run check_full() and post RecoveryTooFull if needed; otherwise
forward the event unchanged.

Fixes: https://tracker.ceph.com/issues/70670
Signed-off-by: Nitzan Mordechai <nmordec@redhat.com>
(cherry picked from commit b8d2c6832fbd1e630cf820079bc9639c5411772d)
src/osd/PeeringState.cc
src/osd/PeeringState.h