From: Burt Holzman Date: Wed, 2 Feb 2022 15:18:52 +0000 (-0600) Subject: krbd: return error when no initial monitor address found X-Git-Tag: v18.0.0~1431^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=0076ffc86e043af7aedc127df8661eaf87fc1c58;p=ceph-ci.git krbd: return error when no initial monitor address found 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 --- diff --git a/src/krbd.cc b/src/krbd.cc index 5ccb9764656..b969a342eeb 100644 --- a/src/krbd.cc +++ b/src/krbd.cc @@ -223,6 +223,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;