BUG-FIX: NCB code was reporting Bogus error when we had an overlapped…#42991
BUG-FIX: NCB code was reporting Bogus error when we had an overlapped…#42991yuriw merged 1 commit intoceph:masterfrom
Conversation
src/os/bluestore/BlueStore.cc
Outdated
| if (!blob.is_shared() && (lcl_itr != lcl_extnt_map.end()) ) { | ||
| // repeated extents must have the same length! | ||
|
|
||
| // --Note-- |
src/os/bluestore/BlueStore.cc
Outdated
| if (lcl_itr != lcl_extnt_map.end()) { | ||
| // shared blobs might have differnt length | ||
| if (!blob.is_shared() && (lcl_itr != lcl_extnt_map.end()) ) { | ||
| // repeated extents must have the same length! |
There was a problem hiding this comment.
If blob is shared, then we should not damage offset map:
lcl_extnt_map[offset] = length;
src/os/bluestore/BlueStore.cc
Outdated
| if (idx > *p_num_entries) { | ||
| derr << "****spillover, num_entries=" << *p_num_entries << ", spillover=" << (idx - *p_num_entries) << dendl; | ||
| return -1; | ||
| //return -1; |
src/os/bluestore/BlueStore.cc
Outdated
| ceph_assert(idx <= *p_num_entries); | ||
| } | ||
|
|
||
| #if 0 |
src/os/bluestore/BlueStore.cc
Outdated
| @@ -17551,7 +17559,8 @@ void BlueStore::read_allocation_from_single_onode( | |||
|
|
|||
| // skip repeating extents | |||
There was a problem hiding this comment.
I think there are 2 reasonable long term solutions:
- make offset check complete (preferred)
- drop it altogether
This comment has been minimized.
This comment has been minimized.
8466536 to
fbf444d
Compare
…tents Fixes: https://tracker.ceph.com/issues/52138 BUG-FIX: NCB code was reporting Bogus error when we had an overlapped extent between shared-blobs on the same Onode (which is a legal case) The error check was refined to skip shared-blobs I also added an assert for copy-allocator spillover (should never happen) and removed an early exit when an empty extent was found (we report and skip it) Signed-off-by: Gabriel Benhanokh <gbenhano@redhat.com>
fbf444d to
d33acd8
Compare
|
Teuthology Testing Result: Original Run: Re-run of dead and failed jobs from the above run: Failures from the Re-run:
|
|
From @neha-ojha approval: |
NCB sanity check was aborting when found an overlapped extent between shared-blobs on the same Onode (which is a legal case)
The error check was refined to skip shared-blobs
I also added an assert for copy-allocator spillover (should never happen) and removed an early exit when an empty extent was found (we report and skip it)
Signed-off-by: Gabriel Benhanokh gbenhano@redhat.com
Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume tox