]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd/PeeringState: re-evaluate full OSDs while waiting for recovery reservation 63296/head
authorNitzan Mordechai <nmordech@redhat.com>
Tue, 13 May 2025 10:00:45 +0000 (10:00 +0000)
committerNitzan Mordechai <nmordech@redhat.com>
Sun, 18 May 2025 05:20:52 +0000 (05:20 +0000)
commitb8d2c6832fbd1e630cf820079bc9639c5411772d
tree548580925e91d02e735f2b7ca1888f3a536fd327
parentb52495188c9a90362facdc3d01cd9efabdfef9af
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>
src/osd/PeeringState.cc
src/osd/PeeringState.h