mirror of
https://github.com/MariaDB/server.git
synced 2025-08-31 22:22:30 +03:00
r2629 | inaam | 2008-09-16 18:46:00 +0300 (Tue, 16 Sep 2008) | 9 lines
branches/5.0 bug#39483 InnoDB hang on adaptive hash because of out of order ::open() call by MySQL Under some conditions MySQL calls ::open with search_latch leading to a deadlock as we try to acquire dict_sys->mutex inside ::open breaking the latching order. The fix is to release search_latch. Reviewed by: Heikki
This commit is contained in:
@@ -2158,6 +2158,14 @@ ha_innobase::open(
|
|||||||
UT_NOT_USED(test_if_locked);
|
UT_NOT_USED(test_if_locked);
|
||||||
|
|
||||||
thd = current_thd;
|
thd = current_thd;
|
||||||
|
|
||||||
|
/* Under some cases MySQL seems to call this function while
|
||||||
|
holding btr_search_latch. This breaks the latching order as
|
||||||
|
we acquire dict_sys->mutex below and leads to a deadlock. */
|
||||||
|
if (thd != NULL) {
|
||||||
|
innobase_release_temporary_latches(thd);
|
||||||
|
}
|
||||||
|
|
||||||
normalize_table_name(norm_name, name);
|
normalize_table_name(norm_name, name);
|
||||||
|
|
||||||
user_thd = NULL;
|
user_thd = NULL;
|
||||||
|
Reference in New Issue
Block a user