]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD: break connection->session->waiting message->connection cycle 5761/head
authorSamuel Just <sjust@redhat.com>
Tue, 21 Jul 2015 18:31:12 +0000 (11:31 -0700)
committerLoic Dachary <ldachary@redhat.com>
Wed, 2 Sep 2015 19:31:36 +0000 (21:31 +0200)
Fixes: #12338
Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit 7f15e22be291df139c85909b96b2366f6dbadf37)

src/osd/OSD.h

index f5021ef159bb4ee355fbf8fc230f443ae95446dc..a3b636e35a7cbca370435b5d0834a9a7bf873dc4 100644 (file)
@@ -1244,6 +1244,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);