summaryrefslogtreecommitdiff
path: root/sql/service_wsrep.cc
diff options
context:
space:
mode:
authorAleksey Midenkov <midenok@gmail.com>2020-05-15 17:13:35 +0300
committerAleksey Midenkov <midenok@gmail.com>2020-05-15 17:13:35 +0300
commitf2a944516ea8fd3de1d79d46da5aa1c8a32cd78d (patch)
treea58d318446f4ac7fc199e53efa7e0029023cc3c6 /sql/service_wsrep.cc
parent3b251e24b6c8fe81bc5eeca086d9c1e57e6739d2 (diff)
parenta4996f951d731322acc63033646d950ddbb0f60c (diff)
downloadmariadb-git-f2a944516ea8fd3de1d79d46da5aa1c8a32cd78d.tar.gz
Merge 10.4 into 10.5
Diffstat (limited to 'sql/service_wsrep.cc')
-rw-r--r--sql/service_wsrep.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/sql/service_wsrep.cc b/sql/service_wsrep.cc
index 013ec65d3f5..ce18410d9af 100644
--- a/sql/service_wsrep.cc
+++ b/sql/service_wsrep.cc
@@ -206,7 +206,15 @@ extern "C" my_bool wsrep_thd_bf_abort(THD *bf_thd, THD *victim_thd,
as RSU has paused the provider.
*/
if ((ret || !wsrep_on(victim_thd)) && signal)
- victim_thd->awake(KILL_QUERY);
+ {
+ mysql_mutex_assert_not_owner(&victim_thd->LOCK_thd_data);
+ mysql_mutex_assert_not_owner(&victim_thd->LOCK_thd_kill);
+ mysql_mutex_lock(&victim_thd->LOCK_thd_data);
+ mysql_mutex_lock(&victim_thd->LOCK_thd_kill);
+ victim_thd->awake_no_mutex(KILL_QUERY);
+ mysql_mutex_unlock(&victim_thd->LOCK_thd_kill);
+ mysql_mutex_unlock(&victim_thd->LOCK_thd_data);
+ }
return ret;
}