From: Samuel Just Date: Thu, 14 Nov 2024 22:53:22 +0000 (-0800) Subject: crimson/.../client_request: extend instance_handle lifetime X-Git-Tag: testing/wip-vshankar-testing-20241219.063429-debug~32^2~22 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=883d0231e4f1124b56321414dbabb1863182ae80;p=ceph-ci.git crimson/.../client_request: extend instance_handle lifetime We're going to need instance_handle to outlive exiting the pipeline stage as it will later hold a reference to an obc holding that stage. Signed-off-by: Samuel Just --- diff --git a/src/crimson/osd/osd_operations/client_request.cc b/src/crimson/osd/osd_operations/client_request.cc index 61a56600a57..a4f48b72318 100644 --- a/src/crimson/osd/osd_operations/client_request.cc +++ b/src/crimson/osd/osd_operations/client_request.cc @@ -268,9 +268,10 @@ seastar::future<> ClientRequest::with_pg_process( *pgref, *this, this_instance_id, eptr); }, pgref, pgref->get_osdmap_epoch()).finally( [this, FNAME, opref=std::move(opref), pgref, - this_instance_id, instance_handle=std::move(instance_handle), &ihref] { + this_instance_id, instance_handle=std::move(instance_handle), &ihref]() mutable { DEBUGDPP("{}.{}: exit", *pgref, *this, this_instance_id); - ihref.handle.exit(); + return ihref.handle.complete( + ).finally([instance_handle=std::move(instance_handle)] {}); }); }