]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
osd: Optimized EC pools bug fix when repeating GetLog
authorBill Scales <bill_scales@uk.ibm.com>
Wed, 18 Jun 2025 11:11:51 +0000 (12:11 +0100)
committerAlex Ainscow <aainscow@uk.ibm.com>
Sun, 7 Sep 2025 22:59:48 +0000 (23:59 +0100)
commitfd3c78bdb2321cd72ce8fb077aba3f191da9d683
treea72b88a511fa6c913e18227bf5bb8ab3c5daaf09
parenta41402a0102a3aa59c2a136116e9fee83b17f1ef
osd: Optimized EC pools bug fix when repeating GetLog

When the primary shard of an optimized EC pool does not have
a copy of the log it may need to repeat the GetLog peering
step twice, the first time to get a full copy of a log from
a shard that sees all log entries and then a second time
to get the "best" log from a nonprimary shard which may
have a partial log due to partial writes.

A side effect of repeating GetLog is that the missing
list is collected for both the "best" shard and the
shard that provides a full copy of the log. This later
missing list confuses later steps in the peering
process and may cause this shard to complete writes
and end up diverging from the primary. Discarding
this missing list causes Peering to behave the same as if
the GetLog step did not need to be repeated.

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