]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
osd: EC optimizations bug in OSDMap::clean_temps
authorBill Scales <bill_scales@uk.ibm.com>
Thu, 22 May 2025 12:12:57 +0000 (13:12 +0100)
committerLaura Flores <lflores@ibm.com>
Wed, 9 Jul 2025 15:47:24 +0000 (15:47 +0000)
commitc96eabd6c79df4f1c7de4666e873bd78df7b7cc0
tree435da8dc66e3676bc06a7cc9d88fbb641849c541
parentc6a81b892216be9ace541b33e9b6c709148fecc0
osd: EC optimizations bug in OSDMap::clean_temps

OSDMap clean_temps clears pg_temp for a PG when the up set
matches the acting_set. For optimized EC pools the pg_temp
is reordered to place primary shards first, this function
was not calling pgtemp_undo_primaryfirst to revert the
reordering.

This meant that a 2+1 EC PG with up set [1,2,3] and
a desired acting set [1,3,2] re-ordered the acting
set to produce pg_temp as [1,2,3] and then deleted this
because it equals the up set.

Calling pgtemp_undo_primaryfirst makes this code work
as intended.

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