From: Casey Bodley Date: Tue, 24 Oct 2017 16:23:41 +0000 (-0400) Subject: rgw: hold cr reference in MetadataListCR callback X-Git-Tag: v13.0.1~210^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3a1474031e4266100c5ccaf082756bdf0607a2be;p=ceph.git rgw: hold cr reference in MetadataListCR callback Signed-off-by: Casey Bodley --- diff --git a/src/rgw/rgw_sync_log_trim.cc b/src/rgw/rgw_sync_log_trim.cc index d6744ca4a4b9..80d8f2205f74 100644 --- a/src/rgw/rgw_sync_log_trim.cc +++ b/src/rgw/rgw_sync_log_trim.cc @@ -797,8 +797,10 @@ int BucketTrimCR::operate() set_status("listing cold buckets for trim"); yield { + // capture a reference so 'this' remains valid in the callback + auto ref = boost::intrusive_ptr{this}; // list cold buckets to consider for trim - auto cb = [this] (std::string&& bucket, std::string&& marker) { + auto cb = [this, ref] (std::string&& bucket, std::string&& marker) { // filter out keys that we trimmed recently if (observer->trimmed_recently(bucket)) { return true;