From 81d0ec148fcec817c06c376d87bcb6aa0fa96211 Mon Sep 17 00:00:00 2001 From: xie xingguo Date: Fri, 15 Mar 2019 15:52:28 +0800 Subject: [PATCH] mon/MonMap: fix mon priority 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 --- src/mon/MonMap.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/mon/MonMap.cc b/src/mon/MonMap.cc index 90330a1dab3..20d956141bd 100644 --- a/src/mon/MonMap.cc +++ b/src/mon/MonMap.cc @@ -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 { -- 2.39.5