]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
os/bluestore: Fix reshard on spanning blobs
authorAdam Kupczyk <akupczyk@ibm.com>
Tue, 15 Apr 2025 08:34:38 +0000 (08:34 +0000)
committerIgor Fedotov <igor.fedotov@croit.io>
Tue, 2 Sep 2025 13:28:03 +0000 (16:28 +0300)
Make sure that spanning blobs are not allowed to have extents crossing
shard boundary.

Partially fixes: https://tracker.ceph.com/issues/70390

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit ce05ade7980397cad48e8fc78bebc839c76ba327)

src/os/bluestore/BlueStore.cc

index d9c7298453852d260567886de31e61667ec27529..1e917708e674c139615691db810f479a599a5110 100644 (file)
@@ -3998,6 +3998,11 @@ bool BlueStore::ExtentMap::encode_some(
               << std::dec << " hit new spanning blob " << *p << dendl;
       request_reshard(p->blob_start(), p->blob_end());
       must_reshard = true;
+    } else if (p->blob->is_spanning() && p->logical_end() > end) {
+      dout(30) << __func__ << std::hex << offset << "~" << length
+               << std::dec << " extent stands out " << *p << dendl;
+      request_reshard(p->blob_start(), p->blob_end());
+      must_reshard = true;
     }
     if (!must_reshard) {
       denc_varint(0, bound); // blobid