]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: add drain_all() after collect() in sync crs
authorCasey Bodley <cbodley@redhat.com>
Mon, 25 Jan 2016 22:23:02 +0000 (17:23 -0500)
committerYehuda Sadeh <yehuda@redhat.com>
Fri, 12 Feb 2016 21:03:33 +0000 (13:03 -0800)
this fixes a segfault caused by parent stacks completing while there are
child stacks outstanding

Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_data_sync.cc
src/rgw/rgw_sync.cc

index 3042560cf824bda51e74f923e05585055f609630..abd1a770cadcf4ef9a98149a2294d51ad9ebc2c0 100644 (file)
@@ -330,6 +330,7 @@ public:
        }
         yield;
       }
+      drain_all();
       return set_cr_done();
     }
     return 0;
@@ -536,6 +537,7 @@ public:
        }
         yield;
       }
+      drain_all();
       yield return set_cr_done();
     }
     return 0;
index 9c475abe66befd82f5e4b4ccfcf84ccb2e7e4b61..914e65b757d3a8059ef2b0b953868f9461bf1569 100644 (file)
@@ -622,6 +622,7 @@ public:
        }
         yield;
       }
+      drain_all();
       return set_cr_done();
     }
     return 0;
@@ -826,6 +827,7 @@ public:
        }
         yield;
       }
+      drain_all();
       if (failed) {
         yield return set_cr_error(-EIO);
       }