]> git.apps.os.sepia.ceph.com Git - ceph.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)
committerAlex Ainscow <aainscow@uk.ibm.com>
Wed, 25 Jun 2025 22:36:40 +0000 (23:36 +0100)
commitef0025ab168e6dd604465921dbecb7fa3b0331bd
treed38396f9fb40acdbb152a0c30e4b31a1210e47d3
parent95da0cdf96da96ba14cfbc5ee9489aabf9e10fbf
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>
src/osd/OSDMap.cc