]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd/PeeringState: do not exclude up from acting_recovery_backfill 32064/head
authorxie xingguo <xie.xingguo@zte.com.cn>
Wed, 20 Nov 2019 00:31:54 +0000 (08:31 +0800)
committerNathan Cutler <ncutler@suse.com>
Fri, 6 Dec 2019 12:55:13 +0000 (13:55 +0100)
commit9b037400115b28bd721a91a04c90566553dc2ffd
tree4ed34d8354b585403f9619c5dd8e4e047a6fdf7f
parent5402f2961764e465acadefd489cb35b0dc803ec0
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>
(cherry picked from commit 22c8cdad8ee1d7376c7d200bdb6ec94ed6d3b5e6)

Conflicts:
    src/osd/PeeringState.cc
- file does not exist in nautilus; made changes manually in src/osd/PG.cc
- used dout(10) instead of psdout(10)
src/osd/PG.cc