Skip to content

Commit

Permalink
MDEV-18237 InnoDB: Unable to drop FTS index aux table and further err…
Browse files Browse the repository at this point in the history
…ors (possibly bogus)

row_drop_table_for_mysql(): Fix a regression introduced in MDEV-16515.
Similar to the follow-up fixes MDEV-16647 and MDEV-17470, we must make
the internal tables of FULLTEXT INDEX immune to kills, to avoid noise
and resource leakage on DROP TABLE or ALTER TABLE. (Orphan internal tables
would be dropped at the next InnoDB startup only.)
  • Loading branch information
dr-m committed Jan 18, 2019
1 parent c1aae37 commit 1d72db4
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 4 deletions.
6 changes: 4 additions & 2 deletions storage/innobase/row/row0mysql.cc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*****************************************************************************
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2015, 2018, MariaDB Corporation.
Copyright (c) 2015, 2019, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Expand Down Expand Up @@ -4225,7 +4225,9 @@ row_drop_table_for_mysql(
hold the InnoDB dictionary lock, we will drop any
adaptive hash index entries upfront. */
const bool is_temp = dict_table_is_temporary(table)
|| strstr(tablename_minus_db, tmp_file_prefix);
|| strncmp(tablename_minus_db, tmp_file_prefix,
tmp_file_prefix_length)
|| strncmp(tablename_minus_db, "FTS_", 4);
while (buf_LRU_drop_page_hash_for_tablespace(table)) {
if ((!is_temp && trx_is_interrupted(trx))
|| srv_shutdown_state != SRV_SHUTDOWN_NONE) {
Expand Down
6 changes: 4 additions & 2 deletions storage/xtradb/row/row0mysql.cc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*****************************************************************************
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2015, 2018, MariaDB Corporation.
Copyright (c) 2015, 2019, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Expand Down Expand Up @@ -4235,7 +4235,9 @@ row_drop_table_for_mysql(
hold the InnoDB dictionary lock, we will drop any
adaptive hash index entries upfront. */
const bool is_temp = dict_table_is_temporary(table)
|| strstr(tablename_minus_db, tmp_file_prefix);
|| strncmp(tablename_minus_db, tmp_file_prefix,
tmp_file_prefix_length)
|| strncmp(tablename_minus_db, "FTS_", 4);
while (buf_LRU_drop_page_hash_for_tablespace(table)) {
if ((!is_temp && trx_is_interrupted(trx))
|| srv_shutdown_state != SRV_SHUTDOWN_NONE) {
Expand Down

0 comments on commit 1d72db4

Please sign in to comment.