From d84589f7f9364eb253a807f1da65dfa594589fe6 Mon Sep 17 00:00:00 2001 From: LINxiansheng Date: Wed, 6 Jul 2022 17:33:04 +0800 Subject: [PATCH] fix a bug about alter affect later than turn on or off --- src/observer/mysql/ob_query_response_time.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/observer/mysql/ob_query_response_time.cpp b/src/observer/mysql/ob_query_response_time.cpp index 932256c127..1b0fd2db03 100644 --- a/src/observer/mysql/ob_query_response_time.cpp +++ b/src/observer/mysql/ob_query_response_time.cpp @@ -175,12 +175,11 @@ int ObRSTCollector::flush_query_response_time(uint64_t tenant_id,const ObString& int ObRSTCollector::enable_query_response_time(uint64_t tenant_id){ int ret = OB_SUCCESS; omt::ObTenantConfigGuard tenant_config(TENANT_CONF(tenant_id)); - if(tenant_config->query_response_time_stats){ - SERVER_LOG(INFO, "query_response_time_stats already turn on", K(ret), K(tenant_id)); + ObRSTTimeCollector* time_collector; + if (OB_SUCC(collector_map_.get_refactored(tenant_id, time_collector))){ + SERVER_LOG(WARN, "time collector of the tenant does not exist", K(ret), K(tenant_id)); } else if (OB_FAIL(collector_map_.set_refactored(tenant_id, new ObRSTTimeCollector()))) { - if (OB_HASH_EXIST == ret) { - ret = OB_ERR_ALREADY_EXISTS; - } + SERVER_LOG(WARN, "time collector of the tenant create failed", K(ret), K(tenant_id)); } return ret; } @@ -188,8 +187,11 @@ int ObRSTCollector::enable_query_response_time(uint64_t tenant_id){ int ObRSTCollector::free_query_response_time(uint64_t tenant_id){ int ret = OB_SUCCESS; omt::ObTenantConfigGuard tenant_config(TENANT_CONF(tenant_id)); - if (OB_FAIL(collector_map_.erase_refactored(tenant_id))) { - SERVER_LOG(WARN,"erase the time collector failed", K(tenant_id)); + ObRSTTimeCollector* time_collector; + if (OB_FAIL(collector_map_.get_refactored(tenant_id, time_collector))){ + SERVER_LOG(WARN, "time collector of the tenant does not exist", K(ret), K(tenant_id)); + } else if (OB_FAIL(collector_map_.erase_refactored(tenant_id))) { + SERVER_LOG(WARN, "erase the time collector failed", K(tenant_id)); } return ret; } -- GitLab