]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
osd: PeeringState: fix selection order in calc_replicated_acting_stretch
authorGreg Farnum <gfarnum@redhat.com>
Tue, 11 Jan 2022 00:10:36 +0000 (00:10 +0000)
committerGreg Farnum <gfarnum@redhat.com>
Tue, 11 Jan 2022 13:54:41 +0000 (13:54 +0000)
commit0af5eb6d31add3ba5e9dc8261657b2b3d6f45ad0
treeca0429d5781d65b37c65b1c52ef47491f3759e18
parent310e8f5571578ffa23775472094f9989b5a0b7a9
osd: PeeringState: fix selection order in calc_replicated_acting_stretch

We were previously mis-ordering these to *de*prioritize the existing acting set. That is bad!

We generate OSD candidates from the acting set and strays, and push
them into the candidates list as a tuple of <<!in_acting,pg_info.last_update>,osd_id>.

Then we sort the list. Then we go through the list from front to back and
push_back entries into the appropriate ancestor lists.

And then we pop_back() off the lists to select the acting set.
Which of course turns our nice careful order backwards! So don't do that.

Fixes: https://tracker.ceph.com/issues/53824
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
src/osd/PeeringState.cc