From 5e6e920f2fbb3281b137c8b436cbb3c38ec1e551 Mon Sep 17 00:00:00 2001 From: haitaoyang Date: Fri, 18 Oct 2024 03:15:15 +0000 Subject: [PATCH] restore storage_iter leak detection code --- src/share/rc/ob_tenant_base.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/share/rc/ob_tenant_base.h b/src/share/rc/ob_tenant_base.h index 4fdc5867c..49275bc94 100755 --- a/src/share/rc/ob_tenant_base.h +++ b/src/share/rc/ob_tenant_base.h @@ -923,8 +923,30 @@ inline ObTenantSwitchGuard _make_tenant_switch_guard() } while(0) +#ifdef ENABLE_DEBUG_LOG +#define mtl_sop_borrow(type) \ + ({ \ + type *iter = MTL(common::ObServerObjectPool*)->borrow_object(); \ + if (OB_NOT_NULL(iter)) { \ + storage::ObStorageLeakChecker::get_instance().handle_hold(iter, storage::ObStorageCheckID::STORAGE_ITER); \ + } \ + (iter); \ + }) +#else #define mtl_sop_borrow(type) MTL(common::ObServerObjectPool*)->borrow_object() +#endif + +#ifdef ENABLE_DEBUG_LOG +#define mtl_sop_return(type, ptr) \ + do { \ + if (OB_NOT_NULL(ptr)) { \ + storage::ObStorageLeakChecker::get_instance().handle_reset(ptr, storage::ObStorageCheckID::STORAGE_ITER); \ + } \ + MTL(common::ObServerObjectPool*)->return_object(ptr); \ + } while (false) +#else #define mtl_sop_return(type, ptr) MTL(common::ObServerObjectPool*)->return_object(ptr) +#endif } // end of namespace share