]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/net: messenger uses dispatch gate for reset callbacks
authorCasey Bodley <cbodley@redhat.com>
Fri, 14 Sep 2018 18:40:03 +0000 (14:40 -0400)
committerCasey Bodley <cbodley@redhat.com>
Fri, 14 Sep 2018 18:47:32 +0000 (14:47 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/crimson/net/SocketMessenger.cc

index 0a8173d8e20d4b54a29e1bc18bc4d557755ff94f..6ad0487ea6e76cd5fdb4791e326a0766e7b3e5a1 100644 (file)
@@ -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;
       }