From ddad20c63be0a3725e6b349a15a03eae82b2d381 Mon Sep 17 00:00:00 2001 From: zwang28 <84491488@qq.com> Date: Tue, 29 Jun 2021 20:23:29 +0800 Subject: [PATCH] MDEV-26043: Fix performance_schema instrument "threadpool/group_mutex" The performance_schema data related to instrument "wait/synch/mutex/threadpool/group_mutex" was incorrect. The root cause is the group_mutex was initialized in thread_group_init before registerd in PSI_register(mutex). The fix is to put PSI_register before thread_group_init, which ensures the right order. --- sql/threadpool_generic.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sql/threadpool_generic.cc b/sql/threadpool_generic.cc index f59c7cbea9d..b34104dbd08 100644 --- a/sql/threadpool_generic.cc +++ b/sql/threadpool_generic.cc @@ -1601,6 +1601,9 @@ int TP_pool_generic::init() sql_print_error("Allocation failed"); DBUG_RETURN(-1); } + PSI_register(mutex); + PSI_register(cond); + PSI_register(thread); scheduler_init(); threadpool_started= true; for (uint i= 0; i < threadpool_max_size; i++) @@ -1614,10 +1617,6 @@ int TP_pool_generic::init() sql_print_error("Can't set threadpool size to %d",threadpool_size); DBUG_RETURN(-1); } - PSI_register(mutex); - PSI_register(cond); - PSI_register(thread); - pool_timer.tick_interval= threadpool_stall_limit; start_timer(&pool_timer); DBUG_RETURN(0);