From: Patrick Donnelly Date: Tue, 13 Feb 2024 21:07:37 +0000 (-0500) Subject: mds: finish request before completing internal req X-Git-Tag: testing/wip-batrick-testing-20240411.154038~154^2~38 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=c944eadaf6987a812e738459214872af1ff7678a;p=ceph-ci.git mds: finish request before completing internal req Importantly, this marks the request dead so it cannot be killed. Signed-off-by: Patrick Donnelly --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 186882caed1..b27cd2bdbc2 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -2083,10 +2083,11 @@ void Server::respond_to_request(const MDRequestRef& mdr, int r) } } else if (mdr->internal_op > -1) { dout(10) << __func__ << ": completing with result " << cpp_strerror(r) << " on internal " << *mdr << dendl; - if (!mdr->internal_op_finish) + auto c = mdr->internal_op_finish; + if (!c) ceph_abort_msg("trying to respond to internal op without finisher"); - mdr->internal_op_finish->complete(r); mdcache->request_finish(mdr); + c->complete(r); } }