From f2969b5d74c9d430babd02bf7c7a998646127cad Mon Sep 17 00:00:00 2001 From: Jin Cai Date: Wed, 13 Sep 2017 10:32:08 +0800 Subject: [PATCH] msg/asyc/rmda: fix the bug of assert when Infiniband::recv_msg receives disconnect message Signed-off-by: Jin Cai --- src/msg/async/rdma/RDMAConnectedSocketImpl.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/msg/async/rdma/RDMAConnectedSocketImpl.cc b/src/msg/async/rdma/RDMAConnectedSocketImpl.cc index 90fc8e5707f..8f2ac4a59c1 100644 --- a/src/msg/async/rdma/RDMAConnectedSocketImpl.cc +++ b/src/msg/async/rdma/RDMAConnectedSocketImpl.cc @@ -200,7 +200,7 @@ int RDMAConnectedSocketImpl::try_connect(const entity_addr_t& peer_addr, const S void RDMAConnectedSocketImpl::handle_connection() { ldout(cct, 20) << __func__ << " QP: " << my_msg.qpn << " tcp_fd: " << tcp_fd << " notify_fd: " << notify_fd << dendl; int r = infiniband->recv_msg(cct, tcp_fd, peer_msg); - if (r < 0) { + if (r <= 0) { if (r != -EAGAIN) { dispatcher->perf_logger->inc(l_msgr_rdma_handshake_errors); ldout(cct, 1) << __func__ << " recv handshake msg failed." << dendl; -- 2.39.5