diff options
author | Thirunarayanan Balathandayuthapani <thiru@mariadb.com> | 2021-12-30 13:13:58 +0530 |
---|---|---|
committer | Thirunarayanan Balathandayuthapani <thiru@mariadb.com> | 2022-01-05 20:09:50 +0530 |
commit | e8d1bb045946a1c7b6e53c6b0bf468f9166db893 (patch) | |
tree | fcfe67130cf775c24e67e23820cbb327d56d3db5 /storage/innobase/include/trx0purge.h | |
parent | 59e8a1265728498e73d186ce17ae9549358e8e95 (diff) | |
download | mariadb-git-bb-10.6-MDEV-27017.tar.gz |
MDEV-27017 Assertion failure 'table->get_ref_count() == 0' on DDL that involves FULLTEXT INDEXbb-10.6-MDEV-27017
purge_sys.stop_FTS() does not wait for purge operation
on FTS tables to finish. InnoDB DDL does purge_sys.stop_FTS()
and lock all fts tables. It eventually fails due to
n_ref_count value.
fts_stop_purge(): Stops the purge thread to process new FTS tables,
check n_ref_count of all fts index auxiliary, common tables.
This should make sure that consecutive fts_lock_tables()
is always successful.
Diffstat (limited to 'storage/innobase/include/trx0purge.h')
-rw-r--r-- | storage/innobase/include/trx0purge.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/storage/innobase/include/trx0purge.h b/storage/innobase/include/trx0purge.h index 417c6688e83..dc032cdf73a 100644 --- a/storage/innobase/include/trx0purge.h +++ b/storage/innobase/include/trx0purge.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2017, 2021, MariaDB Corporation. +Copyright (c) 2017, 2022, 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 @@ -283,6 +283,11 @@ public: trx_sys.clone_oldest_view(&view); latch.wr_unlock(); } + + /** Stop the purge thread and check n_ref_count of all auxiliary + and common table associated with the fts table. + @param table parent FTS table */ + void stop_FTS(const dict_table_t &table); }; /** The global data structure coordinating a purge */ |