Skip to content

os/bluestore: complete fix for extent spanning over shard boundaries#65065

Merged
aclamk merged 6 commits intoceph:mainfrom
ifed01:wip-ifed-fix-70390
Oct 14, 2025
Merged

os/bluestore: complete fix for extent spanning over shard boundaries#65065
aclamk merged 6 commits intoceph:mainfrom
ifed01:wip-ifed-fix-70390

Conversation

@ifed01
Copy link
Contributor

@ifed01 ifed01 commented Aug 15, 2025

Relies on and includes: #62816 and #62263
Fixes: https://tracker.ceph.com/issues/70390

Contribution Guidelines

  • To sign and title your commits, please refer to Submitting Patches to Ceph.

  • If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.

  • When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an x between the brackets: [x]. Spaces and capitalization matter when checking off items this way.

Checklist

  • Tracker (select at least one)
    • References tracker ticket
    • Very recent bug; references commit where it was introduced
    • New feature (ticket optional)
    • Doc update (no ticket needed)
    • Code cleanup (no ticket needed)
  • Component impact
    • Affects Dashboard, opened tracker ticket
    • Affects Orchestrator, opened tracker ticket
    • No impact that needs to be tracked
  • Documentation (select at least one)
    • Updates relevant documentation
    • No doc update is appropriate
  • Tests (select at least one)
Show available Jenkins commands

@ifed01 ifed01 requested a review from a team as a code owner August 15, 2025 10:18
@ifed01 ifed01 force-pushed the wip-ifed-fix-70390 branch 2 times, most recently from 65b3d1a to b99610e Compare August 15, 2025 19:59
@ifed01 ifed01 requested a review from aclamk August 15, 2025 20:19
@ifed01
Copy link
Contributor Author

ifed01 commented Aug 15, 2025

jenkins test make check

@ifed01
Copy link
Contributor Author

ifed01 commented Aug 15, 2025

jenkins test make check arm64

@ifed01
Copy link
Contributor Author

ifed01 commented Aug 21, 2025

jenkins test make check

dout(20) << __func__ << " un-spanning " << *extent->blob << dendl;
}
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding https://github.com/ceph/ceph/pull/65065/files#diff-6f3b1a5dcf5313dc06f71ba4997ee28ec219ecb5633a728b916465c684f1d87dR3944
How about getting rid of mute for was_too_many_blobs_check, and instead cure object that has the horrible amount of spanning blobs? Do sparse-read, punch_hole, write all back again ?

Jayaprakash-ibm and others added 6 commits September 2, 2025 15:35
…d action phases

Refactored ExtentMap::reshard() by splitting it into two distinct functions:
- reshard_decision(): Determines the resharding plan by analyzing shard distribution, extent sizes, and spanning blob ranges
- reshard_action(): Applies the resharding plan, handling faulting, key removals, and shard updates

Signed-off-by: Jaya Prakash <jayaprakash@ibm.com>
(cherry picked from commit 44f93a6)
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
(cherry picked from commit a7f0829)
Intended for UT simplication only.

Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
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 ce05ade)
dirty_range used to have length = 1 byte.
This is good if whole extent is inside shard.
But this has proven not to be the case.
dirty_range(offset, length) is slower only when it crosses shard.

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

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 4f566ea)
Partially fixes: https://tracker.ceph.com/issues/70390

Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
@ifed01 ifed01 force-pushed the wip-ifed-fix-70390 branch from b99610e to 5beee2a Compare September 2, 2025 13:47
@ifed01
Copy link
Contributor Author

ifed01 commented Sep 8, 2025

jenkins test make check arm64

@ifed01
Copy link
Contributor Author

ifed01 commented Sep 8, 2025

jenkins test api

@aclamk
Copy link
Contributor

aclamk commented Sep 26, 2025

@Jayaprakash-ibm
Copy link
Contributor

@aclamk aclamk merged commit 5e72240 into ceph:main Oct 14, 2025
15 of 16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants