]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd-mirror: ignore errors related to parsing the config file 30116/head
authorJason Dillaman <dillaman@redhat.com>
Wed, 21 Aug 2019 21:20:51 +0000 (17:20 -0400)
committerNathan Cutler <ncutler@suse.com>
Tue, 3 Sep 2019 21:02:41 +0000 (23:02 +0200)
If one or more of the default search paths throw an error like
-EPERM, no longer abort the attempt to connect to the cluster.
Previously, after dropping privileges librados would attempt to
access "/root/.ceph/<cluster name>.conf" and would fail due to
the error, even if all the necessary data to connect was available
via the mon config-key store.

Fixes: https://tracker.ceph.com/issues/41356
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 1e8c41e5f72b4f42bc87f2a8b6f45a853cc19faf)

src/tools/rbd_mirror/PoolReplayer.cc

index 370d81f447065601c13d8af7cc6d787c00bcacc9..7c450379f64859858e9848677824b0a10e703e80 100644 (file)
@@ -433,10 +433,9 @@ int PoolReplayer<I>::init_rados(const std::string &cluster_name,
   // librados::Rados::conf_read_file
   int r = cct->_conf.parse_config_files(nullptr, nullptr, 0);
   if (r < 0 && r != -ENOENT) {
+    // do not treat this as fatal, it might still be able to connect
     derr << "could not read ceph conf for " << description << ": "
         << cpp_strerror(r) << dendl;
-    cct->put();
-    return r;
   }
 
   // preserve cluster-specific config settings before applying environment/cli