From 1ea780e8bef2c73ad9530a1bba2358d6c74d81bf Mon Sep 17 00:00:00 2001 From: Haomai Wang Date: Fri, 13 Feb 2015 17:49:50 +0800 Subject: [PATCH] AsyncConnection: release message when connection is closed Signed-off-by: Haomai Wang --- src/msg/async/AsyncConnection.cc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/msg/async/AsyncConnection.cc b/src/msg/async/AsyncConnection.cc index aed8c10ed691..a0deea1f2d47 100644 --- a/src/msg/async/AsyncConnection.cc +++ b/src/msg/async/AsyncConnection.cc @@ -1899,12 +1899,13 @@ int AsyncConnection::send_message(Message *m) center->dispatch_event_external(write_handler); } } else if (state == STATE_CLOSED) { - ldout(async_msgr->cct, 10) << __func__ << " connection closed." - << " Drop message " << m << dendl; + ldout(async_msgr->cct, 10) << __func__ << " connection closed." + << " Drop message " << m << dendl; + m->put(); } else if (async_msgr->get_myaddr() == get_peer_addr()) { //loopback connection - ldout(async_msgr->cct, 20) << __func__ << " " << *m << " local" << dendl; - local_messages.push_back(m); - center->dispatch_event_external(local_deliver_handler); + ldout(async_msgr->cct, 20) << __func__ << " " << *m << " local" << dendl; + local_messages.push_back(m); + center->dispatch_event_external(local_deliver_handler); } else { out_q[m->get_priority()].push_back(m); if (state == STATE_STANDBY && !policy.server) { -- 2.47.3