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

pacific: librbd: fix pool validation lockup #43113

Merged
merged 2 commits into from
Sep 27, 2021

Conversation

idryomov
Copy link
Contributor

@idryomov idryomov commented Sep 9, 2021

Concurrent rbd_pool_init() or rbd_create() operations on an unvalidated
(uninitialized) pool trigger a lockup in ValidatePoolRequest state
machine caused by blocking selfmanaged_snap_{create,remove}() calls.
There are two reactor threads by default (librados_thread_count) but we
effectively need N + 1 reactor threads for N concurrent pool validation
requests, especially for small N.

Switch to aio_selfmanaged_snap_{create,remove}().  At the time this
code was initially written, these aio variants weren't available.  The
workqueue offload introduced later worked prior to the move to asio in
pacific.

Fixes: https://tracker.ceph.com/issues/52537
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit 56d41a9)
It is unused now.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit ba04352)
@Madhu-1
Copy link
Contributor

Madhu-1 commented Sep 20, 2021

@idryomov any scheduled date for the next pacific release with this patch included?

@idryomov
Copy link
Contributor Author

We have just shipped 16.2.6 so I would say at least a month from now.

@idryomov idryomov merged commit 4ea9f26 into ceph:pacific Sep 27, 2021
@idryomov idryomov deleted the wip-rbd-validate-pool-async-pacific branch September 27, 2021 09:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants