]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: No more stray spanning blobs creation
authorAdam Kupczyk <akupczyk@ibm.com>
Thu, 7 May 2026 11:52:50 +0000 (11:52 +0000)
committerAdam Kupczyk <akupczyk@ibm.com>
Fri, 8 May 2026 13:51:54 +0000 (13:51 +0000)
Prevent ExtentMap::reshard_action() from creating stray spanning blobs.
Fixes: https://tracker.ceph.com/issues/75698
Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
src/os/bluestore/BlueStore.cc

index 6c47ce2b5587644fb2ac6763e46fcfe38740e729..9a93f65f0b41957709a8a59cdff73e5b7303c205 100644 (file)
@@ -3913,6 +3913,11 @@ void BlueStore::ExtentMap::reshard_action(
                           << std::hex << bstart1 << " blob_offset 0x"
                           << blob_offset << std::dec << " " << *b << dendl;
                  b = split_blob(b, blob_offset, sh.shard_info->offset);
+                  if (b->get_blob().get_ondisk_size() == 0) {
+                    // The blob b is empty; there are no extents that can reference it.
+                    // It will be deleted as soon as it gets out of scope.
+                    break;
+                  }
                  // switch b to the new right-hand side, in case it
                  // *also* has to get split.
                  bstart1 = sh.shard_info->offset;