From: Sage Weil Date: Tue, 1 Jul 2014 21:31:11 +0000 (-0700) Subject: osd: clear Sessions for loopback Connections on shutdown X-Git-Tag: v0.83~22^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=17ad083145a133b5275e20ae448525cf8d0f3dfe;p=ceph.git osd: clear Sessions for loopback Connections on shutdown Starting with the fast dispatch patches, we are calling the handle_connect on loopback. Make sure we zap them on shutdown to break the Session <-> Connection ref cycle. Signed-off-by: Sage Weil --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 7010cf04ed9..0087e9b57a9 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -1764,6 +1764,10 @@ int OSD::shutdown() service.shutdown(); op_tracker.on_shutdown(); + // zap the Sessions for any loopback Connections + client_messenger->get_loopback_connection()->set_priv(NULL); + cluster_messenger->get_loopback_connection()->set_priv(NULL); + class_handler->shutdown(); client_messenger->shutdown(); cluster_messenger->shutdown(); @@ -3690,7 +3694,7 @@ void OSD::ms_handle_fast_connect(Connection *con) s = new Session; con->set_priv(s->get()); s->con = con; - dout(10) << " new session (outgoing)" << s << " con=" << s->con + dout(10) << " new session (outgoing) " << s << " con=" << s->con << " addr=" << s->con->get_peer_addr() << dendl; // we don't connect to clients assert(con->get_peer_type() == CEPH_ENTITY_TYPE_OSD);