--source include/have_innodb.inc --source include/have_debug.inc --source include/have_debug_sync.inc CREATE TABLE t1(a VARCHAR(5),FULLTEXT KEY(a)) ENGINE=InnoDB; SET DEBUG_SYNC = 'get_next_FTS_DOC_ID SIGNAL prepared WAIT_FOR race'; --send REPLACE INTO t1(a) values('aaa'); connect(dml, localhost, root, ,); SET DEBUG_SYNC = 'now WAIT_FOR prepared'; REPLACE INTO t1(a) VALUES('aaa'); SET DEBUG_SYNC = 'now SIGNAL race'; disconnect dml; connection default; reap; SET DEBUG_SYNC = 'RESET'; DROP TABLE t1; --echo # --echo # MDEV-19529 InnoDB hang on DROP FULLTEXT INDEX --echo # CREATE TABLE t1(f1 CHAR(100), FULLTEXT(f1))ENGINE=InnoDB; INSERT INTO t1 VALUES('test'); CREATE TABLE t2 (f1 char(100), FULLTEXT idx1(f1))ENGINE=InnoDB; INSERT INTO t2 VALUES('mariadb'); connection default; SET @saved_dbug = @@GLOBAL.debug_dbug; SET GLOBAL debug_dbug ='+d,fts_instrument_sync_request,ib_optimize_wq_hang'; SET DEBUG_SYNC= 'fts_instrument_sync_request SIGNAL drop_index_start WAIT_FOR sync_op'; send INSERT INTO t1 VALUES('Keyword'); connect(con1,localhost,root,,,); SET DEBUG_SYNC='now WAIT_FOR drop_index_start'; SET DEBUG_SYNC= 'norebuild_fts_drop SIGNAL sync_op WAIT_FOR fts_drop_index'; send ALTER TABLE t2 drop index idx1; connection default; reap; set DEBUG_SYNC= 'now SIGNAL fts_drop_index'; connection con1; reap; drop table t1, t2; connection default; SET @@GLOBAL.debug_dbug = @saved_dbug; disconnect con1; --echo # --echo # MDEV-25984 Assertion `max_doc_id > 0' failed in fts_init_doc_id() --echo # call mtr.add_suppression("InnoDB: \\(Lock wait timeout\\) while getting next doc id for table `test`.`t1`"); CREATE TABLE t1(f1 CHAR(100), f2 INT, fulltext(f1))ENGINE=InnoDB; INSERT INTO t1 VALUES("mariadb", 1), ("innodb", 1); --source include/restart_mysqld.inc SET DEBUG_SYNC='innodb_rollback_after_fts_lock SIGNAL insert_dml WAIT_FOR ddl_continue'; SEND ALTER TABLE t1 ADD UNIQUE INDEX(f2); connect(con1,localhost,root,,,); SET DEBUG_SYNC='now WAIT_FOR insert_dml'; SET DEBUG_SYNC='fts_cmp_set_sync_doc_id_retry SIGNAL ddl_continue WAIT_FOR dml_finish'; send INSERT INTO t1 VALUES("index", 2); connection default; --error ER_DUP_ENTRY reap; SET DEBUG_SYNC="now SIGNAL dml_finish"; connection con1; reap; SHOW CREATE TABLE t1; connection default; disconnect con1; DROP TABLE t1; set DEBUG_SYNC=RESET;