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
librbd: aio calls may block #4875
Conversation
@dillaman would you mind adding an explanation of how you resolved the conflict at 9fa3039, adf7d70, 3e157fd, 24c0e08, 5331b2f ? I found that to be quite helpful. Of course the always is the possibility of comparing the diffs to see what have changed, but except for trivial conflicts knowing can help. |
@dachary Do you have a good example of this? Since these changes were basically to correct overzealous code insertions from git and not logic changes, I am struggling to figure out how to properly describe the changes. |
@dillaman if that's trivial I would just mention trivial rebase and the reader knows there is nothing to worry about in the conflict zone. e1d5773 has an example of non trivial resolution comment. c0cfd6e a comment that could have been trivial rebase but I started at the difference for a few minutes before seeing the ++ inversion so I felt the need to mention it ;-) |
or trivial resolution instead of trivial rebase maybe ? |
Signed-off-by: Jason Dillaman <dillaman@redhat.com> (cherry picked from commit afb896d) Conflicts: src/librbd/ImageCtx.cc: trivial resolution src/librbd/ImageCtx.h: trivial resolution
Enqueue all AIO API methods within the new librbd thread pool to reduce the possibility of any blocking operations. To maintain backwards compatibility with the legacy return codes of the API's AIO methods, it's still possible to block attempting to acquire the snap_lock. Fixes: #11056 Signed-off-by: Jason Dillaman <dillaman@redhat.com> (cherry picked from commit 3a7b5e3)
Helper method to handle passing fatal errors generated within librbd (not from the OSDs) back to the client. Signed-off-by: Jason Dillaman <dillaman@redhat.com> (cherry picked from commit 6d1d0c8)
Allow the client of SimpleThrottle to detect an async error so that it can exit early. Signed-off-by: Jason Dillaman <dillaman@redhat.com> (cherry picked from commit b88b88c)
All failures should be returned via the AioCompletion. Signed-off-by: Jason Dillaman <dillaman@redhat.com> (cherry picked from commit 9ab42d6) Conflicts: src/librbd/AioRequest.cc: trivial resolution src/librbd/internal.cc: trivial resolution
Signed-off-by: Jason Dillaman <dillaman@redhat.com> (cherry picked from commit 948b15e) Conflicts: src/test/librbd/test_internal.cc: trivial resolution src/test/librbd/test_librbd.cc: trivial resolution
The librados calls used by AioRequest::send should always return zero unless there is a bug. Signed-off-by: Jason Dillaman <dillaman@redhat.com> (cherry picked from commit c77bce3) Conflicts: src/librbd/AioRequest.cc: trivial resolution src/librbd/AsyncFlattenRequest.cc: trivial resolution
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Setting this option to false reverts librbd to legacy behavior where AIO operations could potentially block. Signed-off-by: Jason Dillaman <dillaman@redhat.com> (cherry picked from commit 769cad1)
Signed-off-by: Jason Dillaman <dillaman@redhat.com> (cherry picked from commit 4cf4148) Conflicts: src/test/librbd/test_librbd.cc: trival resolution
5331b2f
to
ed5442b
Compare
Passed RBD teuthology suite |
This pr has passed the first run of integration tests for hammer-backports tracked at http://tracker.ceph.com/issues/11990#rbd. @dachary / @dillaman Do you think it is ready to merge |
👍 |
librbd: aio calls may block Reviewed-by: Jason Dillaman <dillaman@redhat.com> Reviewed-by: Loic Dachary <ldachary@redhat.com>
http://tracker.ceph.com/issues/11770