summaryrefslogtreecommitdiff
path: root/sql/my_decimal.h
diff options
context:
space:
mode:
authorSergey Vojtovich <svoj@mariadb.org>2018-09-07 14:50:10 +0400
committerSergey Vojtovich <svoj@mariadb.org>2018-09-18 16:24:09 +0400
commit327b2717219aaa8f9033895a2351a6ccd4655116 (patch)
tree2d4e1d0068c08ad95efdf3eb75ca22695c13f096 /sql/my_decimal.h
parentb7944343dd3f0bfd16023604611f7be811b994b6 (diff)
downloadmariadb-git-327b2717219aaa8f9033895a2351a6ccd4655116.tar.gz
MDEV-14410 - Assertion `table->pos_in_locked_tables == __null ||
table->pos_in_locked_tables->table == table' failed in mark_used_tables_as_free_for_reuse Assertion failure can be triggered by some DDL executed under LOCK TABLES that holds lock for DDL target table multiple times (either explicitly or implcitly). When closing all table instances for given table (e.g. when preparing for table removal during CREATE OR REPLACE), only one instance was removed from m_locked_tables list. Later we attempt to re-insert one of the instances in mysql_create_table()/ add_back_last_deleted_lock(), which wasn't actually removed. This leads to m_locks_tables corruption, specifically loss of all following elements. Then UNLOCK TABLE won't reset some table instances properly (specifically pos_in_locked_tables), since they're not present in m_locked_tables. Eventually such table instance gets released to table cache and then re-used by subsequent statement, which triggers this assertion failure.
Diffstat (limited to 'sql/my_decimal.h')
0 files changed, 0 insertions, 0 deletions