diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:24:36 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:24:36 +0000 |
commit | 06eaf7232e9a920468c0f8d74dcf2fe8b555501c (patch) | |
tree | e2c7b5777f728320e5b5542b6213fd3591ba51e2 /mysql-test/suite/innodb_fts/t/misc_debug.test | |
parent | Initial commit. (diff) | |
download | mariadb-06eaf7232e9a920468c0f8d74dcf2fe8b555501c.tar.xz mariadb-06eaf7232e9a920468c0f8d74dcf2fe8b555501c.zip |
Adding upstream version 1:10.11.6.upstream/1%10.11.6
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test/suite/innodb_fts/t/misc_debug.test')
-rw-r--r-- | mysql-test/suite/innodb_fts/t/misc_debug.test | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb_fts/t/misc_debug.test b/mysql-test/suite/innodb_fts/t/misc_debug.test new file mode 100644 index 00000000..08581768 --- /dev/null +++ b/mysql-test/suite/innodb_fts/t/misc_debug.test @@ -0,0 +1,117 @@ +# Miscellanous FULLTEXT INDEX tests for debug-instrumented servers. +# Note: These tests used to be part of a larger test, innodb_fts_misc_debug +# or innodb_fts.misc_debug. A large part of that test can be run on a +# non-debug server and has been renamed to innodb_fts.crash_recovery. + +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/have_debug_sync.inc +--source include/count_sessions.inc +--source include/maybe_versioning.inc + +# Following test is for Bug 14668777 - ASSERT ON IB_VECTOR_SIZE( +# TABLE->FTS->INDEXES, ALTER TABLE +CREATE TABLE articles ( + id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, + title VARCHAR(200), + body TEXT, + FULLTEXT (title,body) + ) ENGINE=InnoDB; + +# Abort the operation in dict_create_index_step by setting +# return status of dict_create_index_tree_step() to DB_OUT_OF_MEMORY +# The newly create dict_index_t should be removed from fts cache +SET @saved_debug_dbug = @@SESSION.debug_dbug; +SET SESSION debug_dbug="+d,ib_dict_create_index_tree_fail"; +--error ER_OUT_OF_RESOURCES +CREATE FULLTEXT INDEX idx ON articles(body); +SET SESSION debug_dbug=@saved_debug_dbug; + +# This simply go through ha_innobase::commit_inplace_alter_table +# and do a fts_check_cached_index() +ALTER TABLE articles STATS_PERSISTENT=DEFAULT; + +DROP TABLE articles; + +# This test used to be called innodb_fts.innobase_drop_fts_index_table: + +CREATE TABLE t (a INT, b TEXT) engine=innodb; +SET debug_dbug='+d,alter_table_rollback_new_index'; +-- error ER_UNKNOWN_ERROR +ALTER TABLE t ADD FULLTEXT INDEX (b(64)); +SET SESSION debug_dbug=@saved_debug_dbug; + +DROP TABLE t; + +# MDEV-21550 Assertion `!table->fts->in_queue' failed in +# fts_optimize_remove_table +CREATE TABLE t1 (pk INT, a VARCHAR(8), PRIMARY KEY(pk), + FULLTEXT KEY(a)) ENGINE=InnoDB; +CREATE TABLE t2 (b INT, FOREIGN KEY(b) REFERENCES t1(pk)) ENGINE=InnoDB; +--error ER_ROW_IS_REFERENCED_2 +DROP TABLE/*foo*/ t1; +SET DEBUG_DBUG="+d,fts_instrument_sync"; +INSERT INTO t1 VALUES(1, "mariadb"); +ALTER TABLE t1 FORCE; +# Cleanup +DROP TABLE t2, t1; +SET SESSION debug_dbug=@saved_debug_dbug; + +--echo # +--echo # MDEV-25200 Index count mismatch due to aborted FULLTEXT INDEX +--echo # +CREATE TABLE t1(a INT, b TEXT, c TEXT, FULLTEXT INDEX(b)) ENGINE=InnoDB; +INSERT INTO t1 VALUES(1, "test", "test_1"); +connect(con1,localhost,root,,test); +SET DEBUG_DBUG="+d,innodb_OOM_inplace_alter"; +SET DEBUG_SYNC='innodb_commit_inplace_alter_table_enter SIGNAL s2 WAIT_FOR g2'; +send ALTER TABLE t1 ADD FULLTEXT(c); +connection default; +SET DEBUG_SYNC='now WAIT_FOR s2'; +START TRANSACTION; +SELECT * FROM t1; +SET DEBUG_SYNC='now SIGNAL g2'; +connection con1; +--error ER_OUT_OF_RESOURCES +reap; +disconnect con1; +connection default; +SET DEBUG_SYNC=RESET; +# Exploit MDEV-17468 to force the table definition to be reloaded +ALTER TABLE t1 ADD bl INT AS (LENGTH(b)) VIRTUAL; +CHECK TABLE t1; +DROP TABLE t1; +--source include/wait_until_count_sessions.inc + +--echo # +--echo # MDEV-25663 Double free of transaction during TRUNCATE +--echo # +call mtr.add_suppression("InnoDB: \\(Too many concurrent transactions\\)"); +call mtr.add_suppression("InnoDB: Cannot save table statistics for table `test`\\.`t1`: Too many concurrent transactions"); +SET @saved_debug_dbug= @@debug_dbug; + +CREATE TABLE t1 (b CHAR(12), FULLTEXT KEY(b)) engine=InnoDB; +SET debug_dbug='+d,ib_create_table_fail_too_many_trx'; +if ($MTR_COMBINATION_ORIG) +{ +TRUNCATE t1; +} +if (!$MTR_COMBINATION_ORIG) +{ +--echo TRUNCATE t1; +} +SET debug_dbug=@saved_debug_dbug; +DROP TABLE t1; +--echo # End of 10.3 tests + +# Fulltext fails in commit phase + +CREATE TABLE t1(f1 INT NOT NULL, f2 CHAR(100))ENGINE=InnoDB; +SET DEBUG_DBUG="+d,stats_lock_fail"; +--error ER_LOCK_WAIT_TIMEOUT +ALTER TABLE t1 ADD FULLTEXT(f2); +SET debug_dbug=@saved_debug_dbug; +ALTER TABLE t1 DISCARD TABLESPACE; +--error ER_TABLESPACE_DISCARDED +ALTER TABLE t1 ADD FULLTEXT(f2); +DROP TABLE t1; |