diff --git a/src/observer/omt/ob_multi_tenant.cpp b/src/observer/omt/ob_multi_tenant.cpp index 0776e8c94a..e96f120637 100644 --- a/src/observer/omt/ob_multi_tenant.cpp +++ b/src/observer/omt/ob_multi_tenant.cpp @@ -425,7 +425,7 @@ int ObMultiTenant::init(ObAddr myaddr, MTL_BIND2(mtl_new_default, ObAccessService::mtl_init, nullptr, mtl_stop_default, nullptr, mtl_destroy_default); MTL_BIND2(mtl_new_default, ObCheckPointService::mtl_init, mtl_start_default, mtl_stop_default, mtl_wait_default, mtl_destroy_default); MTL_BIND2(mtl_new_default, ObMultiVersionGarbageCollector::mtl_init, mtl_start_default, mtl_stop_default, mtl_wait_default, mtl_destroy_default); - MTL_BIND2(mtl_new_default, ObUDRMgr::mtl_init, nullptr, nullptr, nullptr, mtl_destroy_default); + MTL_BIND2(mtl_new_default, ObUDRMgr::mtl_init, nullptr, ObUDRMgr::mtl_stop, nullptr, mtl_destroy_default); MTL_BIND(ObPxPools::mtl_init, ObPxPools::mtl_destroy); MTL_BIND(ObTenantDfc::mtl_init, ObTenantDfc::mtl_destroy); diff --git a/src/sql/udr/ob_udr_mgr.cpp b/src/sql/udr/ob_udr_mgr.cpp index dd818ad6ef..04ad2b27f7 100644 --- a/src/sql/udr/ob_udr_mgr.cpp +++ b/src/sql/udr/ob_udr_mgr.cpp @@ -160,6 +160,14 @@ int ObUDRMgr::mtl_init(ObUDRMgr* &node_list) return ret; } +void ObUDRMgr::mtl_stop(ObUDRMgr* &udr_mgr) +{ + if (udr_mgr->inited_) { + TG_CANCEL(udr_mgr->tg_id_, udr_mgr->refresh_task_); + TG_STOP(udr_mgr->tg_id_); + } +} + void ObUDRMgr::destroy() { if (!destroyed_) { diff --git a/src/sql/udr/ob_udr_mgr.h b/src/sql/udr/ob_udr_mgr.h index 7cb388f02a..2ae6966803 100644 --- a/src/sql/udr/ob_udr_mgr.h +++ b/src/sql/udr/ob_udr_mgr.h @@ -84,7 +84,8 @@ public: tg_id_(-1), rule_version_(OB_INIT_REWRITE_RULE_VERSION) {} ~ObUDRMgr(); - static int mtl_init(ObUDRMgr* &node_list); + static int mtl_init(ObUDRMgr* &udr_mgr); + static void mtl_stop(ObUDRMgr* &udr_mgr); void destroy(); int insert_rule(ObUDRInfo &arg); int remove_rule(ObUDRInfo &arg);