]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
osd/PeeringState: do not exclude up from acting_recovery_backfill
authorxie xingguo <xie.xingguo@zte.com.cn>
Wed, 20 Nov 2019 00:31:54 +0000 (08:31 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Wed, 20 Nov 2019 00:32:19 +0000 (08:32 +0800)
commit22c8cdad8ee1d7376c7d200bdb6ec94ed6d3b5e6
tree3f2032293a0bfb26ed5495595d734455cba5ddf9
parent82bb83f0ba930d7f83bea5a5397629b3e334bae2
osd/PeeringState: do not exclude up from acting_recovery_backfill

If we choose a primary that does not belong to the current up set,
and all up peers are still recoverable, then we might end up excluding
some up peer from the acting_recovery_backfill set too due to the
"want size <= pool size" constraint (since https://github.com/ceph/ceph/pull/24035),
as a result of which all up peers might not get recovered in one go.

Fix by falling through any oversized want set to async recovery, which
should be able to handle it nicely.

Fixes: https://tracker.ceph.com/issues/42577
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/osd/PeeringState.cc