summaryrefslogtreecommitdiff
path: root/storage/innobase/include/trx0purge.h
diff options
context:
space:
mode:
authorThirunarayanan Balathandayuthapani <thiru@mariadb.com>2021-12-30 13:13:58 +0530
committerThirunarayanan Balathandayuthapani <thiru@mariadb.com>2022-01-05 20:09:50 +0530
commite8d1bb045946a1c7b6e53c6b0bf468f9166db893 (patch)
treefcfe67130cf775c24e67e23820cbb327d56d3db5 /storage/innobase/include/trx0purge.h
parent59e8a1265728498e73d186ce17ae9549358e8e95 (diff)
downloadmariadb-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.h7
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 */