mariadb/storage/xtradb
Marko Mäkelä e52315a4a2 MDEV-16855 Fix fts_sync_synchronization in InnoDB
This is a backport of the following fix from MySQL 5.7.23.
Some code refactoring has been omitted, and the test case has
been adapted to MariaDB.

commit 7a689acaa65e9d602575f7aa53fe36a64a07460f
Author: Krzysztof Kapuścik <krzysztof.kapuscik@oracle.com>
Date:   Tue Mar 13 12:34:03 2018 +0100

Bug#27082268 Invalid FTS sync synchronization

The fix closes two issues:
Bug #27082268 - INNODB: FAILING ASSERTION: SYM_NODE->TABLE != NULL DURING FTS SYNC
Bug #27095935 - DEADLOCK BETWEEN FTS_DROP_INDEX AND FTS_OPTIMIZE_SYNC_TABLE

Both issues were related to a FTS cache sync being done during
operations that perfomed DDL actions on internal FTS tables
(ALTER TABLE, TRUNCATE). In some cases the FTS tables and/or
internal cache structures could get removed while still being
used to perform FTS synchronization leading to crashes. In other
the sync operations could not get finishes as it was waiting for
dict lock which was taken by thread waiting for the background
sync to be finished.

The changes done includes:
- Stopping background operations during ALTER TABLE and TRUNCATE.
- Removal of unused code in FTS.
- Cleanup of FTS sync related code to make it more readable and
easier to maintain.

RB#18262
2018-07-30 18:06:30 +03:00
..
api Revert "MDEV-6928: Add trx pointer to struct mtr_t" 2018-01-29 11:05:17 +02:00
btr Revert "MDEV-6928: Add trx pointer to struct mtr_t" 2018-01-29 11:05:17 +02:00
buf Fix InnoDB/XtraDB warnings by GCC 8.2.0 2018-07-30 14:05:24 +03:00
data Merge remote-tracking branch '5.5' into 10.0 2018-01-24 12:29:31 +02:00
dict MDEV-16119 InnoDB lock->index refers to a freed object after failed ADD INDEX 2018-05-09 15:56:26 +03:00
dyn Merge branch '5.5' into 10.0 2017-03-03 01:37:54 +02:00
eval move to storage/xtradb 2015-05-04 19:15:28 +02:00
fil MDEV-16124 fil_rename_tablespace() times out and crashes server during table-rebuilding ALTER TABLE 2018-06-05 18:16:12 +03:00
fsp MDEV-13637 InnoDB change buffer housekeeping can cause redo log overrun and possibly deadlocks 2017-08-25 14:01:51 +03:00
fts MDEV-16855 Fix fts_sync_synchronization in InnoDB 2018-07-30 18:06:30 +03:00
fut move to storage/xtradb 2015-05-04 19:15:28 +02:00
ha 5.6.30-76.3 2016-06-21 14:20:09 +02:00
handler MDEV-16855 Fix fts_sync_synchronization in InnoDB 2018-07-30 18:06:30 +03:00
ibuf MDEV-12173 "Error: trying to do an operation on a dropped tablespace" 2018-01-22 16:58:13 +02:00
include MDEV-16855 Fix fts_sync_synchronization in InnoDB 2018-07-30 18:06:30 +03:00
lock MDEV-14988 innodb_read_only tries to modify files if transactions were recovered in COMMITTED state 2018-02-13 14:29:32 +02:00
log compiler warning 2018-04-20 09:40:29 +02:00
mach 5.5.55-38.8 2017-07-18 19:47:01 +02:00
mem Merge 5.5 into 10.0 2018-03-20 18:36:03 +02:00
mtr Merge branch '5.5' into 10.0 2017-03-03 01:37:54 +02:00
mysql-test/storage_engine MDEV-12915 ST_Centroid does not return the same result than MySQL 2017-08-01 09:52:59 +02:00
os Fix build on non-Windows, broken by 0897a25c0f 2018-07-02 17:45:19 +01:00
page Remove the "register" keyword 2018-04-23 13:04:58 +03:00
pars Merge branch 'merge-xtradb-5.6' into 10.0 2017-05-17 12:11:12 +03:00
que 5.6.24-72.2 2015-06-16 11:04:40 +02:00
read move to storage/xtradb 2015-05-04 19:15:28 +02:00
rem Merge remote-tracking branch '5.5' into 10.0 2018-01-24 12:29:31 +02:00
row MDEV-16855 Fix fts_sync_synchronization in InnoDB 2018-07-30 18:06:30 +03:00
srv Remove xtradb "fragmentation-statistics" patches 2018-01-24 20:21:58 +02:00
sync 5.6.38-83.0 2018-01-23 18:04:34 +02:00
trx Fix InnoDB/XtraDB warnings by GCC 8.2.0 2018-07-30 14:05:24 +03:00
usr Remove redundant UT_LIST_INIT() calls 2017-05-17 10:33:49 +03:00
ut Merge branch 'merge-xtradb-5.6' into 10.0 2018-04-26 14:13:58 +02:00
CMakeLists.txt Merge branch 'merge-xtradb-5.6' into 10.0 2018-04-26 14:13:58 +02:00
COPYING.Google move to storage/xtradb 2015-05-04 19:15:28 +02:00
COPYING.Percona move to storage/xtradb 2015-05-04 19:15:28 +02:00
Doxyfile move to storage/xtradb 2015-05-04 19:15:28 +02:00
ha_innodb.def move to storage/xtradb 2015-05-04 19:15:28 +02:00