From: Patrick Donnelly Date: Thu, 22 Oct 2020 17:08:26 +0000 (-0700) Subject: mon/MonMap: fix unconditional failure for init_with_hosts X-Git-Tag: v14.2.13~4^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=44f18394304b97023da7d45482b86f491002b00c;p=ceph.git mon/MonMap: fix unconditional failure for init_with_hosts This bug prevents setting mon_host to a DNS name. Fixes: https://tracker.ceph.com/issues/47951 Fixes: 7a1f02acfe6b5d8a760efd16bb594a0656b39eac Signed-off-by: Patrick Donnelly (cherry picked from commit 21d9f8333b8c76979bbe90d60a8ad6ebb5e36c76) --- diff --git a/src/mon/MonMap.cc b/src/mon/MonMap.cc index 19092d53262c..64179a53cb90 100644 --- a/src/mon/MonMap.cc +++ b/src/mon/MonMap.cc @@ -449,10 +449,9 @@ void MonMap::_add_ambiguous_addr(const string& name, } } -int -MonMap::init_with_addrs(const std::vector& addrs, - bool for_mkfs, - std::string_view prefix) +void MonMap::init_with_addrs(const std::vector& addrs, + bool for_mkfs, + std::string_view prefix) { char id = 'a'; for (auto& addr : addrs) { @@ -466,7 +465,6 @@ MonMap::init_with_addrs(const std::vector& addrs, add(name, addr, 0); } } - return 0; } int MonMap::init_with_ips(const std::string& ips, @@ -481,7 +479,8 @@ int MonMap::init_with_ips(const std::string& ips, } if (addrs.empty()) return -ENOENT; - return init_with_addrs(addrs, for_mkfs, prefix); + init_with_addrs(addrs, for_mkfs, prefix); + return 0; } int MonMap::init_with_hosts(const std::string& hostlist, @@ -502,9 +501,7 @@ int MonMap::init_with_hosts(const std::string& hostlist, return -EINVAL; if (addrs.empty()) return -ENOENT; - if (!init_with_addrs(addrs, for_mkfs, prefix)) { - return -EINVAL; - } + init_with_addrs(addrs, for_mkfs, prefix); calc_legacy_ranks(); return 0; } @@ -808,7 +805,8 @@ int MonMap::build_initial(CephContext *cct, bool for_mkfs, ostream& errout) // cct? auto addrs = cct->get_mon_addrs(); if (addrs != nullptr && (addrs->size() > 0)) { - return init_with_addrs(*addrs, for_mkfs, "noname-"); + init_with_addrs(*addrs, for_mkfs, "noname-"); + return 0; } // file? diff --git a/src/mon/MonMap.h b/src/mon/MonMap.h index 6b82bd10cc55..25403923e21b 100644 --- a/src/mon/MonMap.h +++ b/src/mon/MonMap.h @@ -443,11 +443,10 @@ protected: * * @param addrs list of entity_addrvec_t's * @param prefix prefix to prepend to generated mon names - * @return 0 for success, -errno on error */ - int init_with_addrs(const std::vector& addrs, - bool for_mkfs, - std::string_view prefix); + void init_with_addrs(const std::vector& addrs, + bool for_mkfs, + std::string_view prefix); /** * build a monmap from a list of ips *