]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: stop bucket lease only after draining object sync operations
authorYehuda Sadeh <yehuda@redhat.com>
Fri, 3 Jun 2016 09:03:13 +0000 (02:03 -0700)
committerAbhishek Lekshmanan <abhishek@suse.com>
Thu, 14 Jul 2016 08:06:58 +0000 (10:06 +0200)
Fixes: http://tracker.ceph.com/issues/16143
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit be6ad9a76c3008ea25a737c0de718faab8fca611)

src/rgw/rgw_data_sync.cc

index 434e0f37014a0a56fbbc6413355db899c84d4614..fad1121814c7ea4777b49030ca1d71bfd27ab482 100644 (file)
@@ -2332,6 +2332,7 @@ int RGWBucketShardIncrementalSyncCR::operate()
                                          inc_marker.position, &list_result));
       if (retcode < 0 && retcode != -ENOENT) {
         /* wait for all operations to complete */
+        drain_all_but(1);
         lease_cr->go_down();
         drain_all();
         return set_cr_error(retcode);
@@ -2436,11 +2437,13 @@ int RGWBucketShardIncrementalSyncCR::operate()
     }
     if (retcode < 0) {
       ldout(sync_env->cct, 0) << "ERROR: marker_tracker->flush() returned retcode=" << retcode << dendl;
+      drain_all_but(1);
       lease_cr->go_down();
       drain_all();
       return set_cr_error(retcode);
     }
 
+    drain_all_but(1);
     lease_cr->go_down();
     /* wait for all operations to complete */
     drain_all();