From: Zhang Song Date: Wed, 19 Feb 2025 09:30:15 +0000 (+0800) Subject: crimson/osd: move the destructor of OpsExecuter to ops_executer.cc X-Git-Tag: testing/wip-pdonnell-testing-20250220.015803-debug~11^2~3 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=d24ea15ef084f9d133be14621c94a2c2cba4c51a;p=ceph-ci.git crimson/osd: move the destructor of OpsExecuter to ops_executer.cc Signed-off-by: Zhang Song --- diff --git a/src/crimson/osd/ops_executer.cc b/src/crimson/osd/ops_executer.cc index cbc35c21a04..32b2cbcb940 100644 --- a/src/crimson/osd/ops_executer.cc +++ b/src/crimson/osd/ops_executer.cc @@ -32,6 +32,15 @@ namespace { namespace crimson::osd { +// workaround for clang 19 +// when a .cc file includes ops_executer.h but doesn't include the pg.h, +// it seems that clang++-19 can't retrieve the type hierarchy of PG, so +// that the destructor of boost::intrusive_ptr could not find the hidden +// friend of intrusive_ptr_release. +// Moving the destructor invocation of intrusive_ptr to this file could +// solve this issue. +OpsExecuter::~OpsExecuter() {} + OpsExecuter::call_ierrorator::future<> OpsExecuter::do_op_call(OSDOp& osd_op) { std::string cname, mname; diff --git a/src/crimson/osd/ops_executer.h b/src/crimson/osd/ops_executer.h index f5554bd6919..c70d2a99b1b 100644 --- a/src/crimson/osd/ops_executer.h +++ b/src/crimson/osd/ops_executer.h @@ -383,6 +383,8 @@ public: snapc) { } + ~OpsExecuter(); + template struct RollbackHelper;