]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
krbd: return error when no initial monitor address found 45003/head
authorBurt Holzman <burt@fnal.gov>
Wed, 2 Feb 2022 15:18:52 +0000 (09:18 -0600)
committerIlya Dryomov <idryomov@gmail.com>
Sun, 13 Feb 2022 16:31:25 +0000 (17:31 +0100)
Since we filter monitor addresses based on ms_mode, check that at
least one address was found.

Otherwise, we mismatch arguments when calling sysfs/add_single_major
which emits a misleading error message to dmesg:

  libceph: resolve 'name=user1' (ret=-3): failed
  libceph: parse_ips bad ip 'name=user1,key=client.user1'

Fixes: https://tracker.ceph.com/issues/54128
Signed-off-by: Burt Holzman <burt@fnal.gov>
(cherry picked from commit 0076ffc86e043af7aedc127df8661eaf87fc1c58)

src/krbd.cc

index fdcbc3abb6814daa9ae219a5bcc66340ea1f9e4d..c2eb48070a66b800bba45854e60ad30869d70b1a 100644 (file)
@@ -221,6 +221,11 @@ static int build_map_buf(CephContext *cct, const krbd_spec& spec,
     }
   }
 
+  if (oss.tellp() == 0) {
+    std::cerr << "rbd: failed to get mon address (possible ms_mode mismatch)" << std::endl;
+    return -ENOENT;
+  }
+
   oss << " name=" << cct->_conf->name.get_id();
 
   KeyRing keyring;