]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-mon: make mkfs check whether I am in monmap more robust
authorSage Weil <sage@redhat.com>
Tue, 8 Jan 2019 19:36:18 +0000 (13:36 -0600)
committerSage Weil <sage@redhat.com>
Fri, 11 Jan 2019 01:00:39 +0000 (19:00 -0600)
If we have a local address, check for both v1 and v2 variants in the
monmap.

Signed-off-by: Sage Weil <sage@redhat.com>
src/ceph_mon.cc

index e47cf22cc8c6d87e563b66a5c9de11c037a01d68..ac6380dcbce83567d5c4dd7ca48b7eed33d31267 100644 (file)
@@ -398,19 +398,29 @@ int main(int argc, const char **argv)
        // is a local address listed without a name?  if so, name myself.
        list<entity_addr_t> ls;
        monmap.list_addrs(ls);
-       entity_addr_t local;
+       dout(0) << " monmap addrs are " << ls << ", checking if any are local"
+               << dendl;
 
+       entity_addr_t local;
        if (have_local_addr(g_ceph_context, ls, &local)) {
          string name;
-         monmap.get_addr_name(local, name);
-
+         local.set_type(entity_addr_t::TYPE_MSGR2);
+         if (!monmap.get_addr_name(local, name)) {
+           local.set_type(entity_addr_t::TYPE_LEGACY);
+           if (!monmap.get_addr_name(local, name)) {
+             dout(0) << "no local addresses appear in bootstrap monmap"
+                     << dendl;
+           }
+         }
          if (name.compare(0, 7, "noname-") == 0) {
            dout(0) << argv[0] << ": mon." << name << " " << local
-                   << " is local, renaming to mon." << g_conf()->name.get_id() << dendl;
+                   << " is local, renaming to mon." << g_conf()->name.get_id()
+                   << dendl;
            monmap.rename(name, g_conf()->name.get_id());
-         } else {
+         } else if (name.size()) {
            dout(0) << argv[0] << ": mon." << name << " " << local
-                << " is local, but not 'noname-' + something; not assuming it's me" << dendl;
+                   << " is local, but not 'noname-' + something; "
+                   << "not assuming it's me" << dendl;
          }
        }
       }