From: Xuehan Xu Date: Wed, 27 Jan 2021 11:04:47 +0000 (+0800) Subject: crimson/osd: should capture seastar::do_with params by reference X-Git-Tag: v17.1.0~3136^2~2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=b80a5c6cc9d8b62d9a7567767df3ea435a4beb87;p=ceph.git crimson/osd: should capture seastar::do_with params by reference The lambda within seastar::do_with need to use lvalue reference as its parameter, otherwise it would be referencing a variable whose lifecycle ends when lambda finishes runing Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/osd/replicated_recovery_backend.cc b/src/crimson/osd/replicated_recovery_backend.cc index 0812003bb311a..70c268e83aff1 100644 --- a/src/crimson/osd/replicated_recovery_backend.cc +++ b/src/crimson/osd/replicated_recovery_backend.cc @@ -357,7 +357,7 @@ seastar::future ReplicatedRecoveryBackend::build_push_op( recovery_info.version, PushOp(), [this, &recovery_info, &progress, stat] - (auto new_progress, auto available, auto v, auto pop) { + (auto& new_progress, auto& available, auto& v, auto& pop) { return read_metadata_for_push_op(recovery_info.soid, progress, new_progress, v, &pop).then([&](eversion_t local_ver) mutable {