]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw: initialization fixes
authorYehuda Sadeh <yehuda@redhat.com>
Wed, 19 Jun 2019 03:49:02 +0000 (20:49 -0700)
committerCasey Bodley <cbodley@redhat.com>
Mon, 29 Jul 2019 19:20:49 +0000 (15:20 -0400)
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
src/rgw/rgw_metadata.cc
src/rgw/rgw_rados.cc
src/rgw/rgw_service.cc
src/rgw/services/svc_rados.cc

index 0b728de8aa14d45690eb8297d1542332889ffb29..b6deab7be5c0a3b1bd56054d89e6a11ce58baf70 100644 (file)
@@ -388,13 +388,6 @@ RGWMetadataManager::RGWMetadataManager(RGWSI_Meta *_meta_svc)
 
 RGWMetadataManager::~RGWMetadataManager()
 {
-  map<string, RGWMetadataHandler *>::iterator iter;
-
-  for (iter = handlers.begin(); iter != handlers.end(); ++iter) {
-    delete iter->second;
-  }
-
-  handlers.clear();
 }
 
 int RGWMetadataHandler::attach(RGWMetadataManager *manager)
index cb8fb6924766ca667267a155979b5eba45ea0f6c..c0888e6ea4cb6c240b303bfd73e4b3cf6ae1f12f 100644 (file)
@@ -1192,7 +1192,9 @@ int RGWRados::init_complete()
 
   /* no point of running sync thread if we don't have a master zone configured
     or there is no rest_master_conn */
-  run_sync_thread = !svc.zone->need_to_sync();
+  if (!svc.zone->need_to_sync()) {
+    run_sync_thread = false;
+  }
 
   if (svc.zone->is_meta_master()) {
     auto md_log = svc.mdlog->get_log(current_period.get_id());
index 530996b67dffed241828bc05f1c9e152c9b9e1bf..d6d35e5be189b6240528278ca722347da4f5ba09 100644 (file)
@@ -80,6 +80,7 @@ int RGWServices_Def::init(CephContext *cct,
                     bi_rados.get(), meta.get(), meta_be_sobj.get(),
                     sync_modules.get());
   cls->init(zone.get(), rados.get());
+  datalog_rados->init(zone.get(), cls.get());
   mdlog->init(rados.get(), zone.get(), sysobj.get(), cls.get());
   meta->init(sysobj.get(), mdlog.get(), meta_bes);
   meta_be_sobj->init(sysobj.get(), mdlog.get());
@@ -129,12 +130,18 @@ int RGWServices_Def::init(CephContext *cct,
       ldout(cct, 0) << "ERROR: failed to start zone service (" << cpp_strerror(-r) << dendl;
       return r;
     }
-  }
 
-  r = sync_modules->start();
-  if (r < 0) {
-    ldout(cct, 0) << "ERROR: failed to start sync modules service (" << cpp_strerror(-r) << dendl;
-    return r;
+    r = mdlog->start();
+    if (r < 0) {
+      ldout(cct, 0) << "ERROR: failed to start mdlog service (" << cpp_strerror(-r) << dendl;
+      return r;
+    }
+
+    r = sync_modules->start();
+    if (r < 0) {
+      ldout(cct, 0) << "ERROR: failed to start sync modules service (" << cpp_strerror(-r) << dendl;
+      return r;
+    }
   }
 
   r = cls->start();
@@ -175,46 +182,42 @@ int RGWServices_Def::init(CephContext *cct,
     return r;
   }
 
-  r = datalog_rados->start();
-  if (r < 0) {
-    ldout(cct, 0) << "ERROR: failed to start datalog_rados service (" << cpp_strerror(-r) << dendl;
-    return r;
-  }
-
-  r = mdlog->start();
-  if (r < 0) {
-    ldout(cct, 0) << "ERROR: failed to start mdlog service (" << cpp_strerror(-r) << dendl;
-    return r;
-  }
+  if (!raw) {
+    r = datalog_rados->start();
+    if (r < 0) {
+      ldout(cct, 0) << "ERROR: failed to start datalog_rados service (" << cpp_strerror(-r) << dendl;
+      return r;
+    }
 
-  r = meta_be_sobj->start();
-  if (r < 0) {
-    ldout(cct, 0) << "ERROR: failed to start meta_be_sobj service (" << cpp_strerror(-r) << dendl;
-    return r;
-  }
+    r = meta_be_sobj->start();
+    if (r < 0) {
+      ldout(cct, 0) << "ERROR: failed to start meta_be_sobj service (" << cpp_strerror(-r) << dendl;
+      return r;
+    }
 
-  r = meta->start();
-  if (r < 0) {
-    ldout(cct, 0) << "ERROR: failed to start meta service (" << cpp_strerror(-r) << dendl;
-    return r;
-  }
+    r = meta->start();
+    if (r < 0) {
+      ldout(cct, 0) << "ERROR: failed to start meta service (" << cpp_strerror(-r) << dendl;
+      return r;
+    }
 
-  r = bucket_sobj->start();
-  if (r < 0) {
-    ldout(cct, 0) << "ERROR: failed to start bucket service (" << cpp_strerror(-r) << dendl;
-    return r;
-  }
+    r = bucket_sobj->start();
+    if (r < 0) {
+      ldout(cct, 0) << "ERROR: failed to start bucket service (" << cpp_strerror(-r) << dendl;
+      return r;
+    }
 
-  r = user_rados->start();
-  if (r < 0) {
-    ldout(cct, 0) << "ERROR: failed to start user_rados service (" << cpp_strerror(-r) << dendl;
-    return r;
-  }
+    r = user_rados->start();
+    if (r < 0) {
+      ldout(cct, 0) << "ERROR: failed to start user_rados service (" << cpp_strerror(-r) << dendl;
+      return r;
+    }
 
-  r = otp->start();
-  if (r < 0) {
-    ldout(cct, 0) << "ERROR: failed to start otp service (" << cpp_strerror(-r) << dendl;
-    return r;
+    r = otp->start();
+    if (r < 0) {
+      ldout(cct, 0) << "ERROR: failed to start otp service (" << cpp_strerror(-r) << dendl;
+      return r;
+    }
   }
 
   /* cache or core services will be started by sysobj */
index bc04484a924eba7dea63ccdd806a9873642faee4..c16e092925dfa3f605aa2d260cc176146a29db69 100644 (file)
@@ -96,7 +96,7 @@ RGWSI_RADOS::Obj::Obj(Pool& pool, const string& oid) : rados_svc(pool.rados_svc)
 
 void RGWSI_RADOS::Obj::init(const rgw_raw_obj& obj)
 {
-  ref.pool = RGWSI_RADOS::Pool(rados_svc, ref.obj.pool, rados_handle);
+  ref.pool = RGWSI_RADOS::Pool(rados_svc, obj.pool, rados_handle);
   ref.obj = obj;
 }