]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD: don't keep old connection over new one in update_heartbeat_peers
authorSamuel Just <samuel.just@dreamhost.com>
Thu, 2 Jun 2011 00:04:21 +0000 (17:04 -0700)
committerSamuel Just <samuel.just@dreamhost.com>
Thu, 2 Jun 2011 00:05:57 +0000 (17:05 -0700)
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
src/osd/OSD.cc

index 32f505f1441e2c52c31bbe4e3ffbffa23b3750e9..d90669d41b32c09c58aa3d5b5c4ccc1713a16ee5 100644 (file)
@@ -1456,7 +1456,10 @@ void OSD::update_heartbeat_peers()
        if (heartbeat_from.count(p))
          continue;
        heartbeat_from[p] = osdmap->get_epoch();
-       heartbeat_con[p] = heartbeat_messenger->get_connection(osdmap->get_hb_inst(p));
+       if (!heartbeat_con.count(p)) {
+         // Don't update _con, might be from a newer map
+         heartbeat_con[p] = heartbeat_messenger->get_connection(osdmap->get_hb_inst(p));
+       }
        if (old_from_stamp.count(p) && old_from.count(p) &&
            old_con[p] == heartbeat_con[p]) {
          // have a stamp _AND_ i'm not new to the set