]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
osd: EC optimizations fix bug when recovering only partial write objects
authorBill Scales <bill_scales@uk.ibm.com>
Fri, 6 Jun 2025 12:28:14 +0000 (13:28 +0100)
committerAlex Ainscow <aainscow@uk.ibm.com>
Tue, 1 Jul 2025 12:03:29 +0000 (13:03 +0100)
commit8ca209e33709b1915858a4cd9747d6c580797a4c
tree69f056fb26720b57a05de266f2b023dc4180b5f9
parent6c04e4cf2b81c768eb313c3d0e6ac37d8e69b150
osd: EC optimizations fix bug when recovering only partial write objects

PGLog::reset_complete_to is not handling the scenario where all the
missing objects have a partial write that excludes updating the shard being
recovered as their most recent update. In this scenario the oldest need
is newer than newest log entry. Setting last_compelte to the head of the
log confuses code and makes it think that recovery has completed.

The fix is to hold last_complete one entry behind the head of the log
until all missing objects have been recovered.

PGLog::recover_got already does this when an object is recovered and the
remaining objects to recover match this scenario, so this fix just makes
reset_complete_to behave the same way as recover_got.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
src/osd/PGLog.h