From: Casey Bodley Date: Fri, 14 Sep 2018 18:40:03 +0000 (-0400) Subject: crimson/net: messenger uses dispatch gate for reset callbacks X-Git-Tag: v14.0.1~266^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2a978d5647026439d345da91601d77a91c6a9a91;p=ceph.git crimson/net: messenger uses dispatch gate for reset callbacks Signed-off-by: Casey Bodley --- diff --git a/src/crimson/net/SocketMessenger.cc b/src/crimson/net/SocketMessenger.cc index 0a8173d8e20d..6ad0487ea6e7 100644 --- a/src/crimson/net/SocketMessenger.cc +++ b/src/crimson/net/SocketMessenger.cc @@ -59,9 +59,13 @@ seastar::future<> SocketMessenger::dispatch(ConnectionRef conn) }).handle_exception_type([=] (const std::system_error& e) { if (e.code() == error::connection_aborted || e.code() == error::connection_reset) { - dispatcher->ms_handle_reset(conn); + return seastar::with_gate(pending_dispatch, [=] { + return dispatcher->ms_handle_reset(conn); + }); } else if (e.code() == error::read_eof) { - dispatcher->ms_handle_remote_reset(conn); + return seastar::with_gate(pending_dispatch, [=] { + return dispatcher->ms_handle_remote_reset(conn); + }); } else { throw e; }