From: Sage Weil Date: Thu, 25 Jul 2019 17:42:34 +0000 (-0500) Subject: osd: mark down heartbeat connections on shutdown X-Git-Tag: v15.1.0~1952^2~2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=c6351315fb67557319cc5e9b3aba393e850f04fc;p=ceph-ci.git osd: mark down heartbeat connections on shutdown This ensures that heartbeat_reset() gets call and we clean up the ref loop between the Connections and Sessions. Signed-off-by: Sage Weil --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 200021fa3a8..4de931f4016 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -3432,9 +3432,15 @@ int OSD::shutdown() std::lock_guard l{heartbeat_lock}; heartbeat_stop = true; heartbeat_cond.notify_all(); + heartbeat_peers.clear(); } heartbeat_thread.join(); + hb_back_server_messenger->mark_down_all(); + hb_front_server_messenger->mark_down_all(); + hb_front_client_messenger->mark_down_all(); + hb_back_client_messenger->mark_down_all(); + osd_op_tp.drain(); osd_op_tp.stop(); dout(10) << "op sharded tp stopped" << dendl; @@ -4927,6 +4933,7 @@ bool OSD::heartbeat_reset(Connection *con) { std::lock_guard l(heartbeat_lock); auto s = con->get_priv(); + dout(20) << __func__ << " con " << con << " s " << s.get() << dendl; con->set_priv(nullptr); if (s) { if (is_stopping()) {