New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
osd: process _scan_snaps() with all snapshots with head #21546
Conversation
} | ||
|
||
function TEST_scrub_snaps_multi() { | ||
scrub_snaps $dir 2 30 --osd_scrub_chunk_min=3 --osd_scrub_chunk_max=3 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Setting osd_scrub_chunk_min and max like this doesn't work.
retest this please |
src/osd/PG.cc
Outdated
} | ||
} | ||
for_meta_scrub.objects.insert(begin, iter); | ||
scrubber.cleaned_meta_map.objects.erase(begin, iter); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we move this into a helper so that we aren't duplicating the fragment from scrub_compare_maps? Something like Scrubber::clean_meta_map(map, &for_meta_scrub), where the helper handles the insert/swap/erase dance?
2441313 unrelated |
More testing: http://pulpito.ceph.com/dzafman-2018-04-26_09:56:48-rados:thrash-wip-zafman-testing-distro-basic-smithi/ |
Signed-off-by: David Zafman <dzafman@redhat.com>
Fixes: http://tracker.ceph.com/issues/22881 Signed-off-by: David Zafman <dzafman@redhat.com>
Check list-inconsistent-obj output Check how many _scan_snap groupings Use more general check for crashed osd(s) Signed-off-by: David Zafman <dzafman@redhat.com>
Signed-off-by: David Zafman <dzafman@redhat.com>
When ending on a head object, the head and snapshots would stay in cleaned_meta_map until more maps arrive. The problem as that during a scrub an eviction could occur because scrubber.start is already past the stray object(s) so range_intersects_scrub() is false. Fixes: http://tracker.ceph.com/issues/23909 Signed-off-by: David Zafman <dzafman@redhat.com>
Final retesting in progress |
http://pulpito.ceph.com/dzafman-2018-04-30_18:48:16-rados:thrash-wip-zafman-testing-distro-basic-smithi/ http://pulpito.ceph.com/dzafman-2018-04-30_18:45:29-rados:thrash-wip-zafman-testing-distro-basic-smithi/ |
@liewegas I created a common helper function and fixed a bug in how that code work. When the cleaned_meta_map ended in a head object that object wasn't returned. This means that range_intersects_scrub() can return false, but a previous object still hasn't been processed. |
Test with more than 1 osd with scrub errors
Fixes: http://tracker.ceph.com/issues/22881