]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
AsyncConnection: release message when connection is closed 3697/head
authorHaomai Wang <haomaiwang@gmail.com>
Fri, 13 Feb 2015 09:49:50 +0000 (17:49 +0800)
committerHaomai Wang <haomaiwang@gmail.com>
Fri, 13 Feb 2015 09:49:50 +0000 (17:49 +0800)
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
src/msg/async/AsyncConnection.cc

index aed8c10ed6919d6d2b02c0791d4aa18294a5187a..a0deea1f2d47e9fd46d7f6c0d35ea7bfc3fda56e 100644 (file)
@@ -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) {