MDEV-24872 : galera.galera_insert_multi MTR failed: crash with SIGABRT

Problem was that we tried to lock THD::LOCK_thd_data after we have
acquired lock_sys mutex. This is against mutex ordering rules.
This commit is contained in:
Jan Lindström 2021-02-16 12:05:45 +02:00
parent 4d300ab1a8
commit 45e33e05e2

View File

@ -4733,11 +4733,13 @@ thd_need_ordering_with(const MYSQL_THD thd, const MYSQL_THD other_thd)
#ifdef WITH_WSREP
/* wsrep applier, replayer and TOI processing threads are ordered
by replication provider, relaxed GAP locking protocol can be used
between high priority wsrep threads
between high priority wsrep threads. Note that this function
is called while holding lock_sys mutex, therefore we can't
use THD::LOCK_thd_data mutex below to follow mutex ordering rules.
*/
if (WSREP_ON &&
wsrep_thd_is_BF(const_cast<THD *>(thd), false) &&
wsrep_thd_is_BF(const_cast<THD *>(other_thd), true))
wsrep_thd_is_BF(const_cast<THD *>(other_thd), false))
return 0;
#endif /* WITH_WSREP */
rgi= thd->rgi_slave;