diff options
author | Jan Lindström <jan.lindstrom@mariadb.com> | 2021-02-16 12:19:19 +0200 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2021-02-17 10:28:37 +0200 |
commit | 5ecaf52d42a1e464c71515f35be97855072bcafe (patch) | |
tree | 017e3d3fec220ed9660c6735427bb7c6186b0e20 /storage | |
parent | 45e33e05e2529e456fc4ce28f9f32fbe1a546526 (diff) | |
download | mariadb-git-5ecaf52d42a1e464c71515f35be97855072bcafe.tar.gz |
MDEV-24873 : galera.galera_as_slave_ctas MTR failed: Assertion `(&(&LOCK_thd_data)->m_mutex)->count > 0 && pthread_equal(pthread_self(), (&(&LOCK_thd_data)->m_mutex)->thread)' failed in sql_class.cc on THD::awake(killed_state)
Problem was that thd::awake assumes now that you hold THD::LOCK_thd_data
so we need to keep it when we call wsrep_thd_awake from
wsrep_abort_transaction.
Diffstat (limited to 'storage')
-rw-r--r-- | storage/innobase/handler/ha_innodb.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 58a07e46be6..2c51f0a9fdf 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -19776,8 +19776,8 @@ wsrep_abort_transaction( WSREP_DEBUG("victim does not have transaction"); wsrep_thd_LOCK(victim_thd); wsrep_thd_set_conflict_state(victim_thd, MUST_ABORT); - wsrep_thd_UNLOCK(victim_thd); wsrep_thd_awake(victim_thd, signal); + wsrep_thd_UNLOCK(victim_thd); } DBUG_VOID_RETURN; |