]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
librbd: defer event socket completion until after callback issued
authorJason Dillaman <dillaman@redhat.com>
Mon, 16 Mar 2020 17:17:17 +0000 (13:17 -0400)
committerJason Dillaman <dillaman@redhat.com>
Mon, 16 Mar 2020 17:23:17 +0000 (13:23 -0400)
commit5583499d8e32db774ea877858573ea41c8dfd9c8
treeaf03cb89a57ed7ec921553ceccb1607cef343ed4
parenta2a44e05d3800758eb35ba03942cb406ccdca031
librbd: defer event socket completion until after callback issued

A change post-Nautilus fixed an issue where multiple threads could
concurrently invoke callbacks to librbd clients. However, it also
introduced the potential that a callback hasn't yet fired by the
time the event socket is completed. This resulted in a crash of
fio under high-throughput testing since it expected both a callback
and the event socket completion, in that order.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/librbd/io/AioCompletion.cc
src/librbd/io/AioCompletion.h