]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
osd: During recovery, pass "for_recovery" when attempting re-reads
authorAlex Ainscow <aainscow@uk.ibm.com>
Fri, 23 May 2025 08:59:31 +0000 (09:59 +0100)
committerLaura Flores <lflores@ibm.com>
Wed, 9 Jul 2025 15:47:25 +0000 (15:47 +0000)
commit805dee9de19d60a02a8c3c7e0dfd9c71d6e6ad4a
tree5572f6c2ae1a1ad299171b422846dfac3ae59c3a
parent6afd5a2f50faf27569498a22428f7a8b50f5e3fc
osd: During recovery, pass "for_recovery" when attempting re-reads

get_all_remaining_reads() is used for two purposes:

1. If a read unexpectedly fails, recover from other shards.
2. If a shard is missing, but is allowed to be missing (typically
   due to unequal shard sizes), we rely on this function to return
   no new reads, without an error.

The test failure we saw case (2), but I think case (1) is important.

Most of the time we probably would not notice, but if insufficient redundancy
exists without the for_recovery being set, then this will result in
recovery failing.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
(cherry picked from commit 7ab0588ad2853030bf0e716a5f887e0fe714b314)
src/osd/ECCommon.cc