From 24f7fd2cf9efedf86b214c4d5f45113eed0a2f80 Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Tue, 24 Oct 2017 12:23:41 -0400 Subject: [PATCH] rgw: hold cr reference in MetadataListCR callback Signed-off-by: Casey Bodley (cherry picked from commit 3a1474031e4266100c5ccaf082756bdf0607a2be) --- src/rgw/rgw_sync_log_trim.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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; -- 2.47.3