From 6c5cfbbf3399887baff489f089641385c112c9a0 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Fri, 17 Mar 2017 19:18:53 +0000 Subject: [PATCH] Fix crash (race condition) in DBUG in connect2 test case. When "simulate_failed_connection_1" DBUG keyword is set, current thread's DBUG stack points to global variable in dbug (init_settings). This global variable could be overriden while current THD is still active, producing crash in worst scenario. Added DBUG_SET()so that the current thread own dbug context that cannot concurrently modified by anyone else. --- sql/sql_connect.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sql/sql_connect.cc b/sql/sql_connect.cc index 5cb4cd87296..157e59c2446 100644 --- a/sql/sql_connect.cc +++ b/sql/sql_connect.cc @@ -832,7 +832,11 @@ bool init_new_connection_handler_thread() statistic_increment(connection_errors_internal, &LOCK_status); return 1; } - DBUG_EXECUTE_IF("simulate_failed_connection_1", return(1); ); + DBUG_EXECUTE_IF("simulate_failed_connection_1", + { + DBUG_SET("-d,simulate_failed_connection_1"); + return(1); + }); return 0; }