]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD: break connection->session->waiting message->connection cycle 5506/head
authorSamuel Just <sjust@redhat.com>
Tue, 21 Jul 2015 18:31:12 +0000 (11:31 -0700)
committerSamuel Just <sjust@redhat.com>
Tue, 21 Jul 2015 18:31:12 +0000 (11:31 -0700)
Fixes: #12338
Signed-off-by: Samuel Just <sjust@redhat.com>
src/osd/OSD.h

index e568505afc045437540e98ccd21c138156e69c60..9e06da25363bea4302ecefdb879a7bf1539bd734 100644 (file)
@@ -1379,6 +1379,13 @@ public:
         ++i) {
       clear_session_waiting_on_pg(session, *i);
     }
+    /* Messages have connection refs, we need to clear the
+     * connection->session->message->connection
+     * cycles which result.
+     * Bug #12338
+     */
+    session->waiting_on_map.clear();
+    session->waiting_for_pg.clear();
   }
   void register_session_waiting_on_pg(Session *session, spg_t pgid) {
     Mutex::Locker l(session_waiting_lock);