mirror of
https://github.com/ceph/ceph
synced 2025-02-24 03:27:10 +00:00
Merge pull request #31703 from xiexingguo/wip-42577-plus
osd/PeeringState: do not exclude up from acting_recovery_backfill Reviewed-by: Neha Ojha <nojha@redhat.com>
This commit is contained in:
commit
819ccfdcd7
@ -1703,9 +1703,6 @@ void PeeringState::calc_replicated_acting(
|
||||
acting_backfill->insert(up_cand);
|
||||
ss << " osd." << i << " (up) accepted " << cur_info << std::endl;
|
||||
}
|
||||
if (want->size() >= size) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (want->size() >= size) {
|
||||
@ -2080,6 +2077,14 @@ bool PeeringState::choose_acting(pg_shard_t &auth_log_shard_id,
|
||||
get_osdmap());
|
||||
}
|
||||
}
|
||||
while (want.size() > pool.info.size) {
|
||||
// async recovery should have taken out as many osds as it can.
|
||||
// if not, then always evict the last peer
|
||||
// (will get synchronously recovered later)
|
||||
psdout(10) << __func__ << " evicting osd." << want.back()
|
||||
<< " from oversized want " << want << dendl;
|
||||
want.pop_back();
|
||||
}
|
||||
if (want != acting) {
|
||||
psdout(10) << __func__ << " want " << want << " != acting " << acting
|
||||
<< ", requesting pg_temp change" << dendl;
|
||||
|
Loading…
Reference in New Issue
Block a user