diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2018-03-16 08:23:56 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2018-03-16 08:23:56 +0200 |
commit | ca40330d1da6c1b30a33249eab546a5275a1a103 (patch) | |
tree | 3c1ccad196eb2052359861aae6a8260dc93fef01 /client/mysqladmin.cc | |
parent | dbb3960ad8d92f3cc17527440b059bf80bf83120 (diff) | |
download | mariadb-git-ca40330d1da6c1b30a33249eab546a5275a1a103.tar.gz |
Fix a deadlock in thd_report_wait_for()
Unlike commit a54abf01753a69c2186d60c155212149be59a7a6 claimed,
the caller of THD::awake() may actually hold the InnoDB lock_sys->mutex.
That commit introduced a deadlock of threads in the replication slave
when running the test rpl.rpl_parallel_optimistic_nobinlog.
lock_trx_handle_wait(): Expect the callers to acquire and release
lock_sys->mutex and trx->mutex.
innobase_kill_query(): Restore the logic for conditionally acquiring
and releasing the mutexes. THD::awake() can be called from inside
InnoDB while holding one or both mutexes, via thd_report_wait_for() and
via wsrep_innobase_kill_one_trx().
Diffstat (limited to 'client/mysqladmin.cc')
0 files changed, 0 insertions, 0 deletions