]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rbd-mirror: ignore errors related to parsing the config file
authorJason Dillaman <dillaman@redhat.com>
Wed, 21 Aug 2019 21:20:51 +0000 (17:20 -0400)
committerJason Dillaman <dillaman@redhat.com>
Thu, 22 Aug 2019 12:04:45 +0000 (08:04 -0400)
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>
src/tools/rbd_mirror/PoolReplayer.cc

index 4cc29ea0927f25213fdcb71ae9df4937c1d1c9e0..7bb98604676e7f0cb29a45dd7b69d0ce3c506bd3 100644 (file)
@@ -434,10 +434,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