]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: do not rebind heartbeat messengers on wrongly marked down
authorSage Weil <sage@redhat.com>
Mon, 17 Jun 2019 18:43:06 +0000 (13:43 -0500)
committerSage Weil <sage@redhat.com>
Mon, 15 Jul 2019 18:33:40 +0000 (13:33 -0500)
If we are wrongly marked down and need to rejoin, it is important that we
bind to a new cluster address so that our peer to peer sessions are fully
distinct.

However, it we can still use the same heartbeat ports.  If we get a ping
from someone with an old map, it is better to still be there and tell them
that there is a newer map than for them to get crickets.

Signed-off-by: Sage Weil <sage@inktank.com>
src/osd/OSD.cc

index 1f5f8d48808688873caa83c9674b85e3155a57ec..f28c80e43fb1457f356f9ebd7fceb47f290f1b65 100644 (file)
@@ -8071,8 +8071,6 @@ void OSD::_committed_osd_maps(epoch_t first, epoch_t last, MOSDMap *m)
        client_messenger->get_myaddrs().get_ports(&avoid_ports);
 #endif
        cluster_messenger->get_myaddrs().get_ports(&avoid_ports);
-       hb_back_server_messenger->get_myaddrs().get_ports(&avoid_ports);
-       hb_front_server_messenger->get_myaddrs().get_ports(&avoid_ports);
 
        int r = cluster_messenger->rebind(avoid_ports);
        if (r != 0) {
@@ -8082,22 +8080,8 @@ void OSD::_committed_osd_maps(epoch_t first, epoch_t last, MOSDMap *m)
                   << " rebind cluster_messenger failed" << dendl;
         }
 
-       r = hb_back_server_messenger->rebind(avoid_ports);
-       if (r != 0) {
-         do_shutdown = true;  // FIXME: do_restart?
-          network_error = true;
-          dout(0) << __func__ << " marked down:"
-                  << " rebind hb_back_server_messenger failed" << dendl;
-        }
-
-       r = hb_front_server_messenger->rebind(avoid_ports);
-       if (r != 0) {
-         do_shutdown = true;  // FIXME: do_restart?
-          network_error = true;
-          dout(0) << __func__ << " marked down:" 
-                  << " rebind hb_front_server_messenger failed" << dendl;
-        }
-
+       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();