From: Loic Dachary Date: Wed, 1 Jan 2014 13:57:52 +0000 (+0100) Subject: osdc: = is not a delimiter in --crush-location X-Git-Tag: v0.77~65^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2b848a91d9e56fd6aa08e6ba0a99a0c366f6f5bb;p=ceph.git osdc: = is not a delimiter in --crush-location When parsing the crush location --crush-location 'root=default host=hostA' it must create the vector [ 'root=default', 'host=hostA' ] but the default list of separators of get_str_vec includes = which will create [ 'root', 'default', 'host', 'hostA' ] instead. Set the list of delimiters to exclude = instead. Signed-off-by: Loic Dachary --- diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 25e60b5911e3..3da9be9c1c03 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -147,7 +147,7 @@ void Objecter::handle_conf_change(const struct md_config_t *conf, if (changed.count("crush_location")) { crush_location.clear(); vector lvec; - get_str_vec(cct->_conf->crush_location, lvec); + get_str_vec(cct->_conf->crush_location, ";, \t", lvec); int r = CrushWrapper::parse_loc_multimap(lvec, &crush_location); if (r < 0) { lderr(cct) << "warning: crush_location '" << cct->_conf->crush_location