mariadb/storage/xtradb/row
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
..
row0ext.cc Revert "MDEV-6928: Add trx pointer to struct mtr_t" 2018-01-29 11:05:17 +02:00
row0ftsort.cc Revert "MDEV-6928: Add trx pointer to struct mtr_t" 2018-01-29 11:05:17 +02:00
row0import.cc Fix InnoDB/XtraDB warnings by GCC 8.2.0 2018-07-30 14:05:24 +03:00
row0ins.cc Revert "MDEV-6928: Add trx pointer to struct mtr_t" 2018-01-29 11:05:17 +02:00
row0log.cc Apply the 5.6.40 security fixes to XtraDB 2018-07-30 16:28:20 +03:00
row0merge.cc MDEV-16119 InnoDB lock->index refers to a freed object after failed ADD INDEX 2018-05-09 15:56:26 +03:00
row0mysql.cc MDEV-16855 Fix fts_sync_synchronization in InnoDB 2018-07-30 18:06:30 +03:00
row0purge.cc 5.6.38-83.0 2018-01-23 18:04:34 +02:00
row0quiesce.cc Merge remote-tracking branch '5.5' into 10.0 2018-01-24 12:29:31 +02:00
row0row.cc Merge remote-tracking branch '5.5' into 10.0 2018-01-24 12:29:31 +02:00
row0sel.cc Revert "MDEV-6928: Add trx pointer to struct mtr_t" 2018-01-29 11:05:17 +02:00
row0uins.cc MDEV-13637 InnoDB change buffer housekeeping can cause redo log overrun and possibly deadlocks 2017-08-25 14:01:51 +03:00
row0umod.cc Revert "MDEV-6928: Add trx pointer to struct mtr_t" 2018-01-29 11:05:17 +02:00
row0undo.cc MDEV-12323 Rollback progress log messages during crash recovery are intermixed with unrelated log messages 2017-12-13 18:56:22 +02:00
row0upd.cc Revert "MDEV-6928: Add trx pointer to struct mtr_t" 2018-01-29 11:05:17 +02:00
row0vers.cc move to storage/xtradb 2015-05-04 19:15:28 +02:00