]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/rgw/rgw_sync.cc
update sources to v12.1.1
[ceph.git] / ceph / src / rgw / rgw_sync.cc
index 144b72bd7a8fbba45b47fd3b6686de8ede7c7a3c..0f6a270848ef902a8f6026a6aa93281211e1681e 100644 (file)
@@ -414,7 +414,7 @@ class RGWReadMDLogEntriesCR : public RGWSimpleCoroutine {
   list<cls_log_entry> *entries;
   bool *truncated;
 
-  RGWAsyncReadMDLogEntries *req;
+  RGWAsyncReadMDLogEntries *req{nullptr};
 
 public:
   RGWReadMDLogEntriesCR(RGWMetaSyncEnv *_sync_env, RGWMetadataLog* mdlog,
@@ -835,7 +835,7 @@ public:
                                                 sync_env->store,
                                                 rgw_raw_obj(sync_env->store->get_zone_params().log_pool, sync_env->status_oid()),
                                                 lock_name, lock_duration, this));
-        lease_stack = spawn(lease_cr.get(), false);
+        lease_stack.reset(spawn(lease_cr.get(), false));
       }
       while (!lease_cr->is_locked()) {
         if (lease_cr->is_done()) {
@@ -1524,6 +1524,8 @@ public:
 
         if (retcode < 0) {
           ldout(sync_env->cct, 0) << "ERROR: failed to set sync marker: retcode=" << retcode << dendl;
+          yield lease_cr->go_down();
+          drain_all();
           return retcode;
         }
       }