Skip to content
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

nautilus: os/bluestore: fix unexpected ENOSPC in Avl/Hybrid allocators. #41673

Merged
merged 1 commit into from
Jun 4, 2021

Conversation

ifed01
Copy link
Contributor

@ifed01 ifed01 commented Jun 3, 2021

Avl allocator mode was returning unexpected ENOSPC in first-fit mode if all size-
matching available extents were unaligned but applying the alignment made all of
them shorter than required. Since no lookup retry with smaller size -
ENOSPC is returned.
Additionally we should proceed with a lookup in best-fit mode even when
original size has been truncated to match the avail size.
(force_range_size_alloc==true)

backport tracker: https://tracker.ceph.com/issues/51042

backport of #41369
parent tracker: https://tracker.ceph.com/issues/50656

Signed-off-by: Igor Fedotov ifedotov@suse.com
(cherry picked from commit 0eed13a)

Conflicts:
src/test/objectstore/Allocator_test.cc - legacy INSTANTIATE_TEST_CASE_P clause is still used in Nautilus

Checklist

  • References tracker ticket
  • Updates documentation if necessary
  • Includes tests for new functionality or reproducer for bug

Show available Jenkins commands
  • jenkins retest this please
  • jenkins test classic perf
  • jenkins test crimson perf
  • jenkins test signed
  • jenkins test make check
  • jenkins test make check arm64
  • jenkins test submodules
  • jenkins test dashboard
  • jenkins test api
  • jenkins test docs
  • jenkins render docs
  • jenkins test ceph-volume all
  • jenkins test ceph-volume tox

Avl allocator mode was returning unexpected ENOSPC in first-fit mode if all size-
matching available extents were unaligned but applying the alignment made all of
them shorter than required. Since no lookup retry with smaller size -
ENOSPC is returned.
Additionally we should proceed with a lookup in best-fit mode even when
original size has been truncated to match the avail size.
(force_range_size_alloc==true)

Fixes: https://tracker.ceph.com/issues/50656
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit 0eed13a)

 Conflicts:
	src/test/objectstore/Allocator_test.cc - legacy INSTANTIATE_TEST_CASE_P clause is still used in Nautilus
@ifed01 ifed01 added this to the nautilus milestone Jun 3, 2021
@ifed01 ifed01 requested review from aclamk and neha-ojha June 3, 2021 10:21
@tchaikov tchaikov added nautilus-batch-1 nautilus point releases needs-qa labels Jun 3, 2021
@tchaikov tchaikov requested a review from yuriw June 3, 2021 10:22
@yuriw yuriw merged commit cfb710a into ceph:nautilus Jun 4, 2021
@ifed01 ifed01 deleted the wip-ifed-fix-avl-enospc2-nau branch June 4, 2021 16:24
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.

4 participants