]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/MonMap: fix mon priority
authorxie xingguo <xie.xingguo@zte.com.cn>
Fri, 15 Mar 2019 07:52:28 +0000 (15:52 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Fri, 15 Mar 2019 07:52:28 +0000 (15:52 +0800)
The mon priorities, if specified by configuration or through DNS,
might get lost in some scenarios.

Since the caller(s) of _add_ambiguous_addr should have taken good
care of the priority parameter in all cases (e.g., caller will
guarantee to pass in a sane (zeroed) value if unspecified), it should
be safe to apply priority unconditionally.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/mon/MonMap.cc

index 90330a1dab387f7c93a459332a191ddc27f223f8..20d956141bd00f650e9c8174367e76913fd38782 100644 (file)
@@ -374,7 +374,7 @@ void MonMap::_add_ambiguous_addr(const string& name,
        return;
       }
       if (!contains(addr)) {
-       add(name, entity_addrvec_t(addr));
+       add(name, entity_addrvec_t(addr), priority);
       }
     } else {
       if (!contains(addr)) {
@@ -388,16 +388,16 @@ void MonMap::_add_ambiguous_addr(const string& name,
       addr.set_type(entity_addr_t::TYPE_LEGACY);
       if (!contains(addr)) {
        if (!for_mkfs) {
-         add(name + "-legacy", entity_addrvec_t(addr));
+         add(name + "-legacy", entity_addrvec_t(addr), priority);
        } else {
-         add(name, entity_addrvec_t(addr));
+         add(name, entity_addrvec_t(addr), priority);
        }
       }
     } else if (addr.get_port() == CEPH_MON_PORT_IANA) {
       // iana port implies msgr2 addr
       addr.set_type(entity_addr_t::TYPE_MSGR2);
       if (!contains(addr)) {
-       add(name, entity_addrvec_t(addr));
+       add(name, entity_addrvec_t(addr), priority);
       }
     } else if (addr.get_port() == 0) {
       // no port; include both msgr2 and legacy ports
@@ -405,12 +405,12 @@ void MonMap::_add_ambiguous_addr(const string& name,
        addr.set_type(entity_addr_t::TYPE_MSGR2);
        addr.set_port(CEPH_MON_PORT_IANA);
        if (!contains(addr)) {
-         add(name, entity_addrvec_t(addr));
+         add(name, entity_addrvec_t(addr), priority);
        }
        addr.set_type(entity_addr_t::TYPE_LEGACY);
        addr.set_port(CEPH_MON_PORT_LEGACY);
        if (!contains(addr)) {
-         add(name + "-legacy", entity_addrvec_t(addr));
+         add(name + "-legacy", entity_addrvec_t(addr), priority);
        }
       } else {
        entity_addrvec_t av;
@@ -421,7 +421,7 @@ void MonMap::_add_ambiguous_addr(const string& name,
        addr.set_port(CEPH_MON_PORT_LEGACY);
        av.v.push_back(addr);
        if (!contains(av)) {
-         add(name, av);
+         add(name, av, priority);
        }
       }
     } else {