]> 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)
committerJon <jonathan.bailey1@ibm.com>
Fri, 3 Oct 2025 13:31:23 +0000 (14:31 +0100)
commitedf085d72d0a54bd837f803faa295f9f2f3ea794
tree12a0a65c6f0cd5a3d19c6bb332021397fb4392bf
parent26b8165dea3532a7cb64ddc65faf961602d1a76a
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