]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd: EC Optimizations OSDMap::clean_temps preventing change of primary
authorBill Scales <bill_scales@uk.ibm.com>
Fri, 23 May 2025 09:45:46 +0000 (10:45 +0100)
committerLaura Flores <lflores@ibm.com>
Wed, 9 Jul 2025 15:47:24 +0000 (15:47 +0000)
commit5cf52ec6cd3249e14d60fc7e4b9f9c036bf492c6
tree82b51d9c1dc132d08bdd1b76cfb20ea8bd87790c
parentc96eabd6c79df4f1c7de4666e873bd78df7b7cc0
osd: EC Optimizations OSDMap::clean_temps preventing change of primary

clean_temps is clearing pg_temp if the acting set will be the same
as the up set. For optimized EC pools this is overaggressive because
there are scenarios where it is setting acting set to be the same as
up set to force an alternative shard to be chosen as primary - this
happens because the acting set is transformed to place non-primary
shards at the end of the pg_temp vector.

Detect this scenario and stop clean_temps from undoing the acting
set which is being set by PeeringState::choose_acting.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
(cherry picked from commit 9d9265337a43b3edab8a3c41752baaca835be92a)
src/osd/OSDMap.cc