diff options
author | Sergey Vojtovich <svoj@mariadb.org> | 2014-02-13 11:40:49 +0400 |
---|---|---|
committer | Sergey Vojtovich <svoj@mariadb.org> | 2014-02-13 11:40:49 +0400 |
commit | bde11c1ab59c40be6043e156b0427e1d7105ec85 (patch) | |
tree | 4acdd9c12ec8c5dd52fd91790f617959647abd68 /sql/sql_class.h | |
parent | b0b699dc278faa7cfbc0f54766d02cee762663a9 (diff) | |
download | mariadb-git-bde11c1ab59c40be6043e156b0427e1d7105ec85.tar.gz |
MDEV-5089 - possible deadlocks between rwlocks and mutexes
Pre-MDL versions had direct relationship between LOCK_open and
LOCK_global_system_variables, e.g.:
intern_sys_var_ptr // locks LOCK_global_system_variable
mysql_sys_var_char
create_options_are_valid
ha_innobase::create
handler::ha_create
ha_create_table
rea_create_table
mysql_create_table_no_lock // locks LOCK_open
mysql_create_table
With MDL this relationship was removed, but mutex order was still
recorded. In fact there is indirect relationship between LOCK_open
and LOCK_global_system_variables via rwlocks in reverse order.
Removed LOCK_open and LOCK_global_system_variables order recording,
instead assert that LOCK_open is never held in intern_sys_var_ptr().
This solves only one of many problems detected with MDEV-5089.
Diffstat (limited to 'sql/sql_class.h')
0 files changed, 0 insertions, 0 deletions