summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2022-10-06 09:22:39 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2022-10-06 09:22:39 +0300
commit6dc157f8a6a6f12fcb6877c65c23a2e7692e38fe (patch)
treea143f8592261301d3e0a42dcc33bddc3634227d9 /mysql-test
parent286acaa796cd3c7e7a8d20eba20673ae1ab70b61 (diff)
parent8d6421aa48de5f1581e0706cc65c3515954bcead (diff)
downloadmariadb-git-6dc157f8a6a6f12fcb6877c65c23a2e7692e38fe.tar.gz
Merge 10.5 into 10.6
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/include/ipv6.inc1
-rw-r--r--mysql-test/include/long_test.inc2
-rw-r--r--mysql-test/include/master-slave.inc2
-rw-r--r--mysql-test/main/alter_table.test1
-rw-r--r--mysql-test/main/compress.test2
-rw-r--r--mysql-test/main/ctype_big5.test1
-rw-r--r--mysql-test/main/ctype_gb2312.test1
-rw-r--r--mysql-test/main/ctype_gbk.test1
-rw-r--r--mysql-test/main/ctype_sjis.test1
-rw-r--r--mysql-test/main/ctype_utf8.test1
-rw-r--r--mysql-test/main/gis-precise.test4
-rw-r--r--mysql-test/main/group_min_max.test1
-rw-r--r--mysql-test/main/index_merge_innodb.test1
-rw-r--r--mysql-test/main/index_merge_myisam.test1
-rw-r--r--mysql-test/main/information_schema_all_engines.test1
-rw-r--r--mysql-test/main/innodb_ext_key.test1
-rw-r--r--mysql-test/main/join_cache.test6
-rw-r--r--mysql-test/main/log_slow.test2
-rw-r--r--mysql-test/main/mysql_client_test_comp.test1
-rw-r--r--mysql-test/main/mysql_upgrade.test1
-rw-r--r--mysql-test/main/mysqldump.test1
-rw-r--r--mysql-test/main/order_by.test1
-rw-r--r--mysql-test/main/plugin_auth.test1
-rw-r--r--mysql-test/main/pool_of_threads.test3
-rw-r--r--mysql-test/main/query_cache.test1
-rw-r--r--mysql-test/main/query_cache_debug.test1
-rw-r--r--mysql-test/main/range.test1
-rw-r--r--mysql-test/main/range_innodb.test1
-rw-r--r--mysql-test/main/range_vs_index_merge.test1
-rw-r--r--mysql-test/main/rowid_filter_innodb.test1
-rw-r--r--mysql-test/main/rowid_filter_innodb_debug.test1
-rw-r--r--mysql-test/main/select.test2
-rw-r--r--mysql-test/main/selectivity.test1
-rw-r--r--mysql-test/main/sp.test1
-rw-r--r--mysql-test/main/ssl-big.test1
-rw-r--r--mysql-test/main/ssl.test1
-rw-r--r--mysql-test/main/stat_tables_disabled.test2
-rw-r--r--mysql-test/main/stat_tables_innodb.test1
-rw-r--r--mysql-test/main/stat_tables_par_innodb.test1
-rw-r--r--mysql-test/main/statistics.test1
-rw-r--r--mysql-test/main/subselect_innodb.test1
-rw-r--r--mysql-test/main/subselect_sj.test1
-rw-r--r--mysql-test/main/subselect_sj_jcl6.test1
-rw-r--r--mysql-test/main/trigger.test3
-rw-r--r--mysql-test/main/update_use_source.test1
-rw-r--r--mysql-test/main/win.test1
-rw-r--r--mysql-test/main/win_big-mdev-11697.test2
-rwxr-xr-xmysql-test/std_data/wsrep_notify.sh126
-rwxr-xr-xmysql-test/std_data/wsrep_notify_ssl.sh195
-rw-r--r--mysql-test/suite/federated/federatedx_create_handlers.test1
-rw-r--r--mysql-test/suite/galera/disabled.def1
-rw-r--r--mysql-test/suite/galera/r/galera_var_notify_ssl_ipv6.result11
-rw-r--r--mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6-master.opt1
-rw-r--r--mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.cnf20
-rw-r--r--mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.test20
-rw-r--r--mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result3
-rw-r--r--mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test3
-rw-r--r--mysql-test/suite/innodb/r/purge_secondary.result15
-rw-r--r--mysql-test/suite/innodb/t/alter_large_dml.test2
-rw-r--r--mysql-test/suite/innodb/t/alter_missing_tablespace.test1
-rw-r--r--mysql-test/suite/innodb/t/autoinc_persist.test1
-rw-r--r--mysql-test/suite/innodb/t/ibuf_not_empty.test1
-rw-r--r--mysql-test/suite/innodb/t/innodb-get-fk.test2
-rw-r--r--mysql-test/suite/innodb/t/innodb-stats-initialize-failure.test1
-rw-r--r--mysql-test/suite/innodb/t/innodb-stats-sample.test1
-rw-r--r--mysql-test/suite/innodb/t/innodb-trim.test1
-rw-r--r--mysql-test/suite/innodb/t/innodb_bug30423.test1
-rw-r--r--mysql-test/suite/innodb/t/innodb_bug53290.test1
-rw-r--r--mysql-test/suite/innodb/t/log_corruption.test1
-rw-r--r--mysql-test/suite/innodb/t/log_file.test1
-rw-r--r--mysql-test/suite/innodb/t/log_file_name.test2
-rw-r--r--mysql-test/suite/innodb/t/missing_tablespaces.test1
-rw-r--r--mysql-test/suite/innodb/t/purge_secondary.test32
-rw-r--r--mysql-test/suite/innodb/t/read_only_recover_committed.test1
-rw-r--r--mysql-test/suite/innodb/t/recovery_shutdown.test1
-rw-r--r--mysql-test/suite/innodb/t/table_flags.test7
-rw-r--r--mysql-test/suite/innodb/t/undo_truncate.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb_fts_misc.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb_fts_plugin.test1
-rw-r--r--mysql-test/suite/mariabackup/log_page_corruption.test1
-rw-r--r--mysql-test/suite/optimizer_unfixed_bugs/t/bug43448.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_gtid_stop_start.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_mdev12179.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.test2
-rw-r--r--mysql-test/suite/stress/t/ddl_innodb.test1
-rw-r--r--mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_at_shutdown_basic.test1
-rw-r--r--mysql-test/suite/sys_vars/t/innodb_flush_method_func.test2
87 files changed, 505 insertions, 28 deletions
diff --git a/mysql-test/include/ipv6.inc b/mysql-test/include/ipv6.inc
index 3d8fdcfbc3c..05c65d7817a 100644
--- a/mysql-test/include/ipv6.inc
+++ b/mysql-test/include/ipv6.inc
@@ -22,4 +22,3 @@ eval SET PASSWORD FOR testuser1@'$IPv6' = PASSWORD ('9876');
--replace_result ::1 localhost
SELECT USER();
eval DROP USER testuser1@'$IPv6';
-
diff --git a/mysql-test/include/long_test.inc b/mysql-test/include/long_test.inc
index d9a3b338229..765f88b8037 100644
--- a/mysql-test/include/long_test.inc
+++ b/mysql-test/include/long_test.inc
@@ -2,3 +2,5 @@
# We can use this to schedule such test early (to not be left with
# only one or two long tests running, and rests of works idle), or to
# run a quick test skipping long-running test cases.
+
+--source include/no_valgrind_without_big.inc
diff --git a/mysql-test/include/master-slave.inc b/mysql-test/include/master-slave.inc
index 9ed206b2c22..5b603fbfdb3 100644
--- a/mysql-test/include/master-slave.inc
+++ b/mysql-test/include/master-slave.inc
@@ -1,3 +1,5 @@
+--source include/no_valgrind_without_big.inc
+
# ==== Purpose ====
#
# Configure two servers to be replication master and slave.
diff --git a/mysql-test/main/alter_table.test b/mysql-test/main/alter_table.test
index b339da5edb2..5eb6cdb0f9d 100644
--- a/mysql-test/main/alter_table.test
+++ b/mysql-test/main/alter_table.test
@@ -1,3 +1,4 @@
+--source include/no_valgrind_without_big.inc
--source include/have_innodb.inc
#
# Test of alter table
diff --git a/mysql-test/main/compress.test b/mysql-test/main/compress.test
index 8fc21d9c961..daa133ebdc7 100644
--- a/mysql-test/main/compress.test
+++ b/mysql-test/main/compress.test
@@ -1,6 +1,8 @@
# Turn on compression between the client and server
# and run a number of tests
+# Too slow for valgrind
+--source include/no_valgrind_without_big.inc
# Can't test with embedded server
-- source include/not_embedded.inc
-- source include/have_compress.inc
diff --git a/mysql-test/main/ctype_big5.test b/mysql-test/main/ctype_big5.test
index 41991258886..180fa1690fa 100644
--- a/mysql-test/main/ctype_big5.test
+++ b/mysql-test/main/ctype_big5.test
@@ -1,3 +1,4 @@
+-- source include/no_valgrind_without_big.inc
-- source include/have_big5.inc
#
diff --git a/mysql-test/main/ctype_gb2312.test b/mysql-test/main/ctype_gb2312.test
index 07460116ade..96d60445707 100644
--- a/mysql-test/main/ctype_gb2312.test
+++ b/mysql-test/main/ctype_gb2312.test
@@ -1,3 +1,4 @@
+-- source include/no_valgrind_without_big.inc
-- source include/have_gb2312.inc
#
diff --git a/mysql-test/main/ctype_gbk.test b/mysql-test/main/ctype_gbk.test
index d68b78f847c..a2046012685 100644
--- a/mysql-test/main/ctype_gbk.test
+++ b/mysql-test/main/ctype_gbk.test
@@ -1,3 +1,4 @@
+--source include/no_valgrind_without_big.inc
-- source include/have_gbk.inc
#
diff --git a/mysql-test/main/ctype_sjis.test b/mysql-test/main/ctype_sjis.test
index ecb870242c5..13f919f0c94 100644
--- a/mysql-test/main/ctype_sjis.test
+++ b/mysql-test/main/ctype_sjis.test
@@ -1,3 +1,4 @@
+-- source include/no_valgrind_without_big.inc
-- source include/have_sjis.inc
#
diff --git a/mysql-test/main/ctype_utf8.test b/mysql-test/main/ctype_utf8.test
index 844e812acb3..a70d8aa5617 100644
--- a/mysql-test/main/ctype_utf8.test
+++ b/mysql-test/main/ctype_utf8.test
@@ -1,3 +1,4 @@
+--source include/no_valgrind_without_big.inc
#
# Tests with the utf8 character set
#
diff --git a/mysql-test/main/gis-precise.test b/mysql-test/main/gis-precise.test
index da72a0c4d8a..f49b3f1a1da 100644
--- a/mysql-test/main/gis-precise.test
+++ b/mysql-test/main/gis-precise.test
@@ -1,5 +1,5 @@
--- source include/have_geometry.inc
-
+--source include/no_valgrind_without_big.inc
+--source include/have_geometry.inc
#
# Spatial objects
diff --git a/mysql-test/main/group_min_max.test b/mysql-test/main/group_min_max.test
index ed65745a509..cf9952e817d 100644
--- a/mysql-test/main/group_min_max.test
+++ b/mysql-test/main/group_min_max.test
@@ -3,6 +3,7 @@
# The queries in this file test query execution via QUICK_GROUP_MIN_MAX_SELECT.
#
+--source include/no_valgrind_without_big.inc
--source include/default_optimizer_switch.inc
--source include/have_sequence.inc
--source include/have_innodb.inc
diff --git a/mysql-test/main/index_merge_innodb.test b/mysql-test/main/index_merge_innodb.test
index e8ebb6b2a64..82f3c756da4 100644
--- a/mysql-test/main/index_merge_innodb.test
+++ b/mysql-test/main/index_merge_innodb.test
@@ -11,6 +11,7 @@
#
# Slow test, don't run during staging part
+--source include/long_test.inc
--source include/not_staging.inc
--source include/have_innodb.inc
diff --git a/mysql-test/main/index_merge_myisam.test b/mysql-test/main/index_merge_myisam.test
index 10ddbee36b2..0437f9138cb 100644
--- a/mysql-test/main/index_merge_myisam.test
+++ b/mysql-test/main/index_merge_myisam.test
@@ -9,6 +9,7 @@
# wrapper t/index_merge_innodb.test sources now several
# include/index_merge*.inc files
#
+--source include/no_valgrind_without_big.inc
SET DEFAULT_STORAGE_ENGINE = MyISAM;
# MyISAM supports Merge tables
diff --git a/mysql-test/main/information_schema_all_engines.test b/mysql-test/main/information_schema_all_engines.test
index f8d685d2560..04537051acb 100644
--- a/mysql-test/main/information_schema_all_engines.test
+++ b/mysql-test/main/information_schema_all_engines.test
@@ -2,6 +2,7 @@
# information_schema_db.test whose results depends on which engines are
# available (since these engines inject tables into INFORMATION_SCHEMA).
+--source include/no_valgrind_without_big.inc
--source include/not_embedded.inc
--source include/have_innodb.inc
--source include/have_perfschema.inc
diff --git a/mysql-test/main/innodb_ext_key.test b/mysql-test/main/innodb_ext_key.test
index f1cf6658f0b..ecaf8aa874e 100644
--- a/mysql-test/main/innodb_ext_key.test
+++ b/mysql-test/main/innodb_ext_key.test
@@ -1,4 +1,5 @@
--source include/innodb_prefix_index_cluster_optimization.inc
+--source include/no_valgrind_without_big.inc
SET SESSION DEFAULT_STORAGE_ENGINE='InnoDB';
diff --git a/mysql-test/main/join_cache.test b/mysql-test/main/join_cache.test
index 4b659345db4..e31937efc1b 100644
--- a/mysql-test/main/join_cache.test
+++ b/mysql-test/main/join_cache.test
@@ -1,9 +1,11 @@
+--source include/no_valgrind_without_big.inc
+--source include/default_optimizer_switch.inc
+--source include/default_charset.inc
+
--disable_warnings
DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11;
DROP DATABASE IF EXISTS world;
--enable_warnings
---source include/default_optimizer_switch.inc
---source include/default_charset.inc
set @org_optimizer_switch=@@optimizer_switch;
set @save_join_cache_level=@@join_cache_level;
diff --git a/mysql-test/main/log_slow.test b/mysql-test/main/log_slow.test
index 64fd8202985..b51777d859e 100644
--- a/mysql-test/main/log_slow.test
+++ b/mysql-test/main/log_slow.test
@@ -1,3 +1,5 @@
+--source include/no_valgrind_without_big.inc
+
#
# Testing of slow log query options
#
diff --git a/mysql-test/main/mysql_client_test_comp.test b/mysql-test/main/mysql_client_test_comp.test
index f8bd80fc48a..36a12b6691e 100644
--- a/mysql-test/main/mysql_client_test_comp.test
+++ b/mysql-test/main/mysql_client_test_comp.test
@@ -3,6 +3,7 @@
# No need to run this with embedded server
--source include/not_embedded.inc
--source include/check_ipv6.inc
+--source include/no_valgrind_without_big.inc
# need to have the dynamic loading turned on for the client plugin tests
--source include/have_plugin_auth.inc
diff --git a/mysql-test/main/mysql_upgrade.test b/mysql-test/main/mysql_upgrade.test
index 3254b8d2d91..1fe884b16c9 100644
--- a/mysql-test/main/mysql_upgrade.test
+++ b/mysql-test/main/mysql_upgrade.test
@@ -2,6 +2,7 @@
-- source include/have_working_dns.inc
-- source include/have_innodb.inc
-- source include/have_partition.inc
+-- source include/no_valgrind_without_big.inc
set sql_mode="";
diff --git a/mysql-test/main/mysqldump.test b/mysql-test/main/mysqldump.test
index b7031e535a9..5dd78634b53 100644
--- a/mysql-test/main/mysqldump.test
+++ b/mysql-test/main/mysqldump.test
@@ -1,3 +1,4 @@
+--source include/no_valgrind_without_big.inc
--source include/have_utf8mb4.inc
call mtr.add_suppression("@003f.frm' \\(errno: 22\\)");
diff --git a/mysql-test/main/order_by.test b/mysql-test/main/order_by.test
index cf1e8cbd0dd..b2f26f5a5e8 100644
--- a/mysql-test/main/order_by.test
+++ b/mysql-test/main/order_by.test
@@ -1,3 +1,4 @@
+--source include/no_valgrind_without_big.inc
#
# Testing ORDER BY
#
diff --git a/mysql-test/main/plugin_auth.test b/mysql-test/main/plugin_auth.test
index 30e4fa6e0ad..6912462066c 100644
--- a/mysql-test/main/plugin_auth.test
+++ b/mysql-test/main/plugin_auth.test
@@ -2,6 +2,7 @@
--source include/not_embedded.inc
--source include/mysql_upgrade_preparation.inc
--source include/have_innodb.inc
+--source include/no_valgrind_without_big.inc
SET GLOBAL SQL_MODE="";
SET LOCAL SQL_MODE="";
diff --git a/mysql-test/main/pool_of_threads.test b/mysql-test/main/pool_of_threads.test
index 3d581d4605d..e9f083b2f8f 100644
--- a/mysql-test/main/pool_of_threads.test
+++ b/mysql-test/main/pool_of_threads.test
@@ -4,10 +4,11 @@
-- source include/have_pool_of_threads.inc
-- source include/default_optimizer_switch.inc
-SET optimizer_switch='outer_join_with_cache=off';
# Slow test, don't run during staging part
-- source include/not_staging.inc
-- source include/long_test.inc
+
+SET optimizer_switch='outer_join_with_cache=off';
-- source include/common-tests.inc
SET optimizer_switch=default;
diff --git a/mysql-test/main/query_cache.test b/mysql-test/main/query_cache.test
index f8152945396..559d2a8e810 100644
--- a/mysql-test/main/query_cache.test
+++ b/mysql-test/main/query_cache.test
@@ -1,5 +1,6 @@
-- source include/have_query_cache.inc
-- source include/long_test.inc
+-- source include/no_valgrind_without_big.inc
set @save_query_cache_size=@@query_cache_size;
#
diff --git a/mysql-test/main/query_cache_debug.test b/mysql-test/main/query_cache_debug.test
index af82927245b..056396984d9 100644
--- a/mysql-test/main/query_cache_debug.test
+++ b/mysql-test/main/query_cache_debug.test
@@ -2,6 +2,7 @@
--source include/have_query_cache.inc
--source include/have_debug_sync.inc
--source include/long_test.inc
+--source include/no_valgrind_without_big.inc
set global query_cache_type= ON;
set @save_query_cache_size=@@global.query_cache_size;
diff --git a/mysql-test/main/range.test b/mysql-test/main/range.test
index a785726cb22..0de13797da0 100644
--- a/mysql-test/main/range.test
+++ b/mysql-test/main/range.test
@@ -1,3 +1,4 @@
+--source include/no_valgrind_without_big.inc
#
# Problem with range optimizer
#
diff --git a/mysql-test/main/range_innodb.test b/mysql-test/main/range_innodb.test
index df0fff403a8..b6dea2fbe06 100644
--- a/mysql-test/main/range_innodb.test
+++ b/mysql-test/main/range_innodb.test
@@ -4,6 +4,7 @@
--source include/have_innodb.inc
--source include/have_debug.inc
+--source include/no_valgrind_without_big.inc
--disable_warnings
drop table if exists t0, t1, t2;
diff --git a/mysql-test/main/range_vs_index_merge.test b/mysql-test/main/range_vs_index_merge.test
index 670762bcb2f..bafd1603457 100644
--- a/mysql-test/main/range_vs_index_merge.test
+++ b/mysql-test/main/range_vs_index_merge.test
@@ -1,3 +1,4 @@
+--source include/no_valgrind_without_big.inc
--source include/default_optimizer_switch.inc
--source include/default_charset.inc
--source include/have_sequence.inc
diff --git a/mysql-test/main/rowid_filter_innodb.test b/mysql-test/main/rowid_filter_innodb.test
index 97b9aa0102c..1112d7b69c6 100644
--- a/mysql-test/main/rowid_filter_innodb.test
+++ b/mysql-test/main/rowid_filter_innodb.test
@@ -1,3 +1,4 @@
+--source include/no_valgrind_without_big.inc
--source include/have_innodb.inc
SET SESSION DEFAULT_STORAGE_ENGINE='InnoDB';
diff --git a/mysql-test/main/rowid_filter_innodb_debug.test b/mysql-test/main/rowid_filter_innodb_debug.test
index eb43edd9e9e..31fbd937304 100644
--- a/mysql-test/main/rowid_filter_innodb_debug.test
+++ b/mysql-test/main/rowid_filter_innodb_debug.test
@@ -1,4 +1,5 @@
--source include/have_innodb.inc
+--source include/no_valgrind_without_big.inc
set default_storage_engine=innodb;
--source include/rowid_filter_debug_kill.inc
diff --git a/mysql-test/main/select.test b/mysql-test/main/select.test
index fa1cd2d8f26..b9cfb169537 100644
--- a/mysql-test/main/select.test
+++ b/mysql-test/main/select.test
@@ -2,6 +2,8 @@
# Find string "NOTE NOTE NOTE" in order to find some 'unsure' tests
#
+--source include/no_valgrind_without_big.inc
+
#
# Simple select test
#
diff --git a/mysql-test/main/selectivity.test b/mysql-test/main/selectivity.test
index 1d96dc0bf80..ba0af502720 100644
--- a/mysql-test/main/selectivity.test
+++ b/mysql-test/main/selectivity.test
@@ -1,3 +1,4 @@
+--source include/no_valgrind_without_big.inc
--source include/have_stat_tables.inc
--source include/have_sequence.inc
--source include/default_charset.inc
diff --git a/mysql-test/main/sp.test b/mysql-test/main/sp.test
index fd076ee9efe..5713f22defa 100644
--- a/mysql-test/main/sp.test
+++ b/mysql-test/main/sp.test
@@ -1,3 +1,4 @@
+--source include/no_valgrind_without_big.inc
--source include/have_partition.inc
--source include/have_sequence.inc
diff --git a/mysql-test/main/ssl-big.test b/mysql-test/main/ssl-big.test
index fa35146e627..46076e03e70 100644
--- a/mysql-test/main/ssl-big.test
+++ b/mysql-test/main/ssl-big.test
@@ -6,6 +6,7 @@
-- source include/have_64bit.inc
# No point in running with valgrind as it takes 1.5 hours
-- source include/not_valgrind.inc
+# This test often times out with MemorySanitizer.
-- source include/not_msan.inc
# Save the initial number of concurrent sessions
diff --git a/mysql-test/main/ssl.test b/mysql-test/main/ssl.test
index 82ada27ffd4..d3830bb7007 100644
--- a/mysql-test/main/ssl.test
+++ b/mysql-test/main/ssl.test
@@ -1,3 +1,4 @@
+--source include/no_valgrind_without_big.inc
# Turn on ssl between the client and server
# and run a number of tests
diff --git a/mysql-test/main/stat_tables_disabled.test b/mysql-test/main/stat_tables_disabled.test
index e6b965afe34..27b99d0dfdf 100644
--- a/mysql-test/main/stat_tables_disabled.test
+++ b/mysql-test/main/stat_tables_disabled.test
@@ -4,7 +4,9 @@ set @innodb_stats_persistent_sample_pages_save=
set global innodb_stats_persistent= 1;
set global innodb_stats_persistent_sample_pages=100;
+
--source include/have_innodb.inc
+--source include/no_valgrind_without_big.inc
SET SESSION DEFAULT_STORAGE_ENGINE='InnoDB';
diff --git a/mysql-test/main/stat_tables_innodb.test b/mysql-test/main/stat_tables_innodb.test
index f439ec52315..fd8dc6bf3c5 100644
--- a/mysql-test/main/stat_tables_innodb.test
+++ b/mysql-test/main/stat_tables_innodb.test
@@ -1,3 +1,4 @@
+--source include/no_valgrind_without_big.inc
--source include/have_innodb.inc
--source include/have_sequence.inc
diff --git a/mysql-test/main/stat_tables_par_innodb.test b/mysql-test/main/stat_tables_par_innodb.test
index 79ab23dcc3f..024814933c6 100644
--- a/mysql-test/main/stat_tables_par_innodb.test
+++ b/mysql-test/main/stat_tables_par_innodb.test
@@ -1,6 +1,7 @@
# Note that this test requires a fresh restart to not have problems with the
# old status values
+--source include/no_valgrind_without_big.inc
--source include/have_stat_tables.inc
--source include/have_debug_sync.inc
--source include/not_embedded.inc
diff --git a/mysql-test/main/statistics.test b/mysql-test/main/statistics.test
index 1f99aaa33e5..a81de1662f0 100644
--- a/mysql-test/main/statistics.test
+++ b/mysql-test/main/statistics.test
@@ -1,3 +1,4 @@
+--source include/no_valgrind_without_big.inc
--source include/have_stat_tables.inc
--source include/have_innodb.inc
--disable_warnings
diff --git a/mysql-test/main/subselect_innodb.test b/mysql-test/main/subselect_innodb.test
index 493a7425ea8..b1916b9ec59 100644
--- a/mysql-test/main/subselect_innodb.test
+++ b/mysql-test/main/subselect_innodb.test
@@ -1,3 +1,4 @@
+-- source include/no_valgrind_without_big.inc
-- source include/have_innodb.inc
# Note: the tests uses only non-semijoin subqueries so semi-join switch
diff --git a/mysql-test/main/subselect_sj.test b/mysql-test/main/subselect_sj.test
index c869f56c837..e4d02ed666c 100644
--- a/mysql-test/main/subselect_sj.test
+++ b/mysql-test/main/subselect_sj.test
@@ -1,3 +1,4 @@
+--source include/no_valgrind_without_big.inc
#
# Nested Loops semi-join subquery evaluation tests
#
diff --git a/mysql-test/main/subselect_sj_jcl6.test b/mysql-test/main/subselect_sj_jcl6.test
index 179c1aa029b..f4f605c0406 100644
--- a/mysql-test/main/subselect_sj_jcl6.test
+++ b/mysql-test/main/subselect_sj_jcl6.test
@@ -1,6 +1,7 @@
#
# Run subselect_sj.test with BKA enabled
#
+--source include/no_valgrind_without_big.inc
--source include/default_optimizer_switch.inc
set @save_optimizer_switch_jcl6=@@optimizer_switch;
diff --git a/mysql-test/main/trigger.test b/mysql-test/main/trigger.test
index 32827975e14..16d117e7342 100644
--- a/mysql-test/main/trigger.test
+++ b/mysql-test/main/trigger.test
@@ -1,6 +1,7 @@
# This test uses chmod, can't be run with root permissions
-- source include/not_as_root.inc
---source include/default_charset.inc
+-- source include/no_valgrind_without_big.inc
+-- source include/default_charset.inc
#
# Basic triggers test
diff --git a/mysql-test/main/update_use_source.test b/mysql-test/main/update_use_source.test
index d446bd512dd..1b765138a18 100644
--- a/mysql-test/main/update_use_source.test
+++ b/mysql-test/main/update_use_source.test
@@ -1,5 +1,6 @@
--source include/have_sequence.inc
--source include/have_innodb.inc
+--source include/no_valgrind_without_big.inc
create table t1 (old_c1 integer, old_c2 integer,c1 integer, c2 integer, c3 integer) engine=InnoDB STATS_PERSISTENT=0;
create view v1 as select * from t1 where c2=2;
diff --git a/mysql-test/main/win.test b/mysql-test/main/win.test
index d5fdd1e79f0..65801901e47 100644
--- a/mysql-test/main/win.test
+++ b/mysql-test/main/win.test
@@ -1,6 +1,7 @@
#
# Window Functions Tests
#
+--source include/no_valgrind_without_big.inc
--source include/have_sequence.inc
--disable_warnings
diff --git a/mysql-test/main/win_big-mdev-11697.test b/mysql-test/main/win_big-mdev-11697.test
index 9488a938554..9016d0d5e0b 100644
--- a/mysql-test/main/win_big-mdev-11697.test
+++ b/mysql-test/main/win_big-mdev-11697.test
@@ -1,3 +1,5 @@
+--source include/no_valgrind_without_big.inc
+
set max_recursive_iterations=200000;
create table test_table (id int, random_data varchar(36), static_int int, static_varchar varchar(10));
diff --git a/mysql-test/std_data/wsrep_notify.sh b/mysql-test/std_data/wsrep_notify.sh
index 48edad4306f..5050ff9bc3e 100755
--- a/mysql-test/std_data/wsrep_notify.sh
+++ b/mysql-test/std_data/wsrep_notify.sh
@@ -4,11 +4,31 @@
# It will create 'wsrep' schema and two tables in it: 'membeship' and 'status'
# and fill them on every membership or node status change.
#
-# Edit parameters below to specify the address and login to server.
-
+# Edit parameters below to specify the address and login to server:
+#
USER=root
+PSWD=
+#
+# If these parameters are not set, then the values
+# passed by the server are taken:
+#
HOST=127.0.0.1
PORT=$NODE_MYPORT_1
+#
+# Edit parameters below to specify SSL parameters:
+#
+ssl_key=
+ssl_cert=
+ssl_ca=
+ssl_capath=
+ssl_cipher=
+ssl_crl=
+ssl_crlpath=
+ssl_verify_server_cert=0
+#
+# Client executable path:
+#
+CLIENT="$EXE_MYSQL"
SCHEMA="mtr_wsrep_notify"
MEMB_TABLE="$SCHEMA.membership"
@@ -19,7 +39,7 @@ SET wsrep_on=0;
CREATE SCHEMA IF NOT EXISTS $SCHEMA;
CREATE TABLE IF NOT EXISTS $MEMB_TABLE (
idx INT,
- uuid CHAR(40), /* node UUID */
+ uuid CHAR(40), /* node UUID */
name VARCHAR(32), /* node name */
addr VARCHAR(256) /* node address */
) ENGINE=MEMORY;
@@ -40,7 +60,7 @@ configuration_change()
local idx=0
- for NODE in $(echo $MEMBERS | sed s/,/\ /g)
+ for NODE in $(echo "$MEMBERS" | sed s/,/\ /g)
do
echo "INSERT INTO $MEMB_TABLE VALUES ( $idx, "
# Don't forget to properly quote string values
@@ -59,17 +79,44 @@ status_update()
echo "$BEGIN; UPDATE $STATUS_TABLE SET status='$STATUS'; $END;"
}
+trim_string()
+{
+ if [ -n "${BASH_VERSION:-}" ]; then
+ local pattern="[![:space:]${2:-}]"
+ local x="${1#*$pattern}"
+ local z=${#1}
+ x=${#x}
+ if [ $x -ne $z ]; then
+ local y="${1%$pattern*}"
+ y=${#y}
+ x=$(( z-x-1 ))
+ y=$(( y-x+1 ))
+ printf '%s' "${1:$x:$y}"
+ else
+ printf ''
+ fi
+ else
+ local pattern="[[:space:]${2:-}]"
+ echo "$1" | sed -E "s/^$pattern+|$pattern+\$//g"
+ fi
+}
+
COM=status_update # not a configuration change by default
-while [ $# -gt 0 ]
-do
+STATUS=""
+CLUSTER_UUID=""
+PRIMARY="0"
+INDEX=""
+MEMBERS=""
+
+while [ $# -gt 0 ]; do
case $1 in
--status)
- STATUS=$2
+ STATUS=$(trim_string "$2")
shift
;;
--uuid)
- CLUSTER_UUID=$2
+ CLUSTER_UUID=$(trim_string "$2")
shift
;;
--primary)
@@ -78,22 +125,75 @@ do
shift
;;
--index)
- INDEX=$2
+ INDEX=$(trim_string "$2")
shift
;;
--members)
- MEMBERS=$2
+ MEMBERS=$(trim_string "$2")
shift
;;
esac
shift
done
+USER=$(trim_string "$USER")
+PSWD=$(trim_string "$PSWD")
+
+HOST=$(trim_string "$HOST")
+PORT=$(trim_string "$PORT")
+
+case "$HOST" in
+\[*)
+ HOST="${HOST##\[}"
+ HOST=$(trim_string "${HOST%%\]}")
+ ;;
+esac
+
+if [ -z "$HOST" ]; then
+ HOST="${NOTIFY_HOST:-}"
+fi
+if [ -z "$PORT" ]; then
+ PORT="${NOTIFY_PORT:-}"
+fi
+
+ssl_key=$(trim_string "$ssl_key");
+ssl_cert=$(trim_string "$ssl_cert");
+ssl_ca=$(trim_string "$ssl_ca");
+ssl_capath=$(trim_string "$ssl_capath");
+ssl_cipher=$(trim_string "$ssl_cipher");
+ssl_crl=$(trim_string "$ssl_crl");
+ssl_crlpath=$(trim_string "$ssl_crlpath");
+ssl_verify_server_cert=$(trim_string "$ssl_verify_server_cert");
+
+SSL_PARAM=""
+
+if [ -n "$ssl_key" -o -n "$ssl_cert" -o \
+ -n "$ssl_ca" -o -n "$ssl_capath" -o \
+ -n "$ssl_cipher" ]
+then
+ SSL_PARAM=' --ssl'
+ [ -n "$ssl_key" ] && SSL_PARAM="$SSL_PARAM --ssl-key='$ssl_key'"
+ [ -n "$ssl_cert" ] && SSL_PARAM="$SSL_PARAM --ssl-cert='$ssl_cert'"
+ [ -n "$ssl_ca" ] && SSL_PARAM="$SSL_PARAM --ssl-ca='$ssl_ca'"
+ [ -n "$ssl_capath" ] && SSL_PARAM="$SSL_PARAM --ssl-capath='$ssl_capath'"
+ [ -n "$ssl_cipher" ] && SSL_PARAM="$SSL_PARAM --ssl-cipher='$ssl_cipher'"
+ [ -n "$ssl_crl" ] && SSL_PARAM="$SSL_PARAM --ssl-crl='$ssl_crl'"
+ [ -n "$ssl_crlpath" ] && SSL_PARAM="$SSL_PARAM --ssl-crlpath='$ssl_crlpath'"
+ if [ -n "$ssl_verify_server_cert" ]; then
+ if [ $ssl_verify_server_cert -ne 0 ]; then
+ SSL_PARAM+=' --ssl-verify-server-cert'
+ fi
+ fi
+fi
+
case $STATUS in
"joined" | "donor" | "synced")
- $COM | mysql -B -u$USER -h$HOST -P$PORT
+ "$COM" | eval "$CLIENT" -B "-u'$USER'"${PSWD:+" -p'$PSWD'"}\
+ "-h'$HOST'" "-P$PORT"$SSL_PARAM
;;
- *)
- exit 0
+ *)
+ # The node might be shutting down
;;
esac
+
+exit 0
diff --git a/mysql-test/std_data/wsrep_notify_ssl.sh b/mysql-test/std_data/wsrep_notify_ssl.sh
new file mode 100755
index 00000000000..0e416a2f448
--- /dev/null
+++ b/mysql-test/std_data/wsrep_notify_ssl.sh
@@ -0,0 +1,195 @@
+#!/bin/sh -eu
+
+# This is a simple example of wsrep notification script (wsrep_notify_cmd).
+# It will create 'wsrep' schema and two tables in it: 'membeship' and 'status'
+# and fill them on every membership or node status change.
+#
+# Edit parameters below to specify the address and login to server:
+#
+USER=root
+PSWD=
+#
+# If these parameters are not set, then the values
+# passed by the server are taken:
+#
+HOST=127.0.0.1
+PORT=$NODE_MYPORT_1
+#
+# Edit parameters below to specify SSL parameters:
+#
+ssl_cert="$MYSQL_TEST_DIR/std_data/client-cert.pem"
+ssl_key="$MYSQL_TEST_DIR/std_data/client-key.pem"
+ssl_ca="$MYSQL_TEST_DIR/std_data/cacert.pem"
+ssl_capath=
+ssl_cipher=
+ssl_crl=
+ssl_crlpath=
+ssl_verify_server_cert=0
+#
+# Client executable path:
+#
+CLIENT="$EXE_MYSQL"
+
+SCHEMA="mtr_wsrep_notify"
+MEMB_TABLE="$SCHEMA.membership"
+STATUS_TABLE="$SCHEMA.status"
+
+BEGIN="
+SET wsrep_on=0;
+CREATE SCHEMA IF NOT EXISTS $SCHEMA;
+CREATE TABLE IF NOT EXISTS $MEMB_TABLE (
+ idx INT,
+ uuid CHAR(40), /* node UUID */
+ name VARCHAR(32), /* node name */
+ addr VARCHAR(256) /* node address */
+) ENGINE=MEMORY;
+CREATE TABLE IF NOT EXISTS $STATUS_TABLE (
+ size INT, /* component size */
+ idx INT, /* this node index */
+ status CHAR(16), /* this node status */
+ uuid CHAR(40), /* cluster UUID */
+ prim BOOLEAN /* if component is primary */
+) ENGINE=MEMORY;
+BEGIN;
+"
+END="COMMIT;"
+
+configuration_change()
+{
+ echo "$BEGIN;"
+
+ local idx=0
+
+ for NODE in $(echo "$MEMBERS" | sed s/,/\ /g)
+ do
+ echo "INSERT INTO $MEMB_TABLE VALUES ( $idx, "
+ # Don't forget to properly quote string values
+ echo "'$NODE'" | sed s/\\//\',\'/g
+ echo ");"
+ idx=$(( $idx + 1 ))
+ done
+
+ echo "INSERT INTO $STATUS_TABLE VALUES($idx, $INDEX, '$STATUS', '$CLUSTER_UUID', $PRIMARY);"
+
+ echo "$END"
+}
+
+status_update()
+{
+ echo "SET wsrep_on=0; BEGIN; UPDATE $STATUS_TABLE SET status='$STATUS'; COMMIT;"
+}
+
+trim_string()
+{
+ if [ -n "${BASH_VERSION:-}" ]; then
+ local pattern="[![:space:]${2:-}]"
+ local x="${1#*$pattern}"
+ local z=${#1}
+ x=${#x}
+ if [ $x -ne $z ]; then
+ local y="${1%$pattern*}"
+ y=${#y}
+ x=$(( z-x-1 ))
+ y=$(( y-x+1 ))
+ printf '%s' "${1:$x:$y}"
+ else
+ printf ''
+ fi
+ else
+ local pattern="[[:space:]${2:-}]"
+ echo "$1" | sed -E "s/^$pattern+|$pattern+\$//g"
+ fi
+}
+
+COM=status_update # not a configuration change by default
+
+STATUS=""
+CLUSTER_UUID=""
+PRIMARY="0"
+INDEX=""
+MEMBERS=""
+
+while [ $# -gt 0 ]; do
+ case $1 in
+ --status)
+ STATUS=$(trim_string "$2")
+ shift
+ ;;
+ --uuid)
+ CLUSTER_UUID=$(trim_string "$2")
+ shift
+ ;;
+ --primary)
+ [ "$2" = "yes" ] && PRIMARY="1" || PRIMARY="0"
+ COM=configuration_change
+ shift
+ ;;
+ --index)
+ INDEX=$(trim_string "$2")
+ shift
+ ;;
+ --members)
+ MEMBERS=$(trim_string "$2")
+ shift
+ ;;
+ esac
+ shift
+done
+
+USER=$(trim_string "$USER")
+PSWD=$(trim_string "$PSWD")
+
+HOST=$(trim_string "$HOST")
+PORT=$(trim_string "$PORT")
+
+case "$HOST" in
+\[*)
+ HOST="${HOST##\[}"
+ HOST=$(trim_string "${HOST%%\]}")
+ ;;
+esac
+
+if [ -z "$HOST" ]; then
+ HOST="${NOTIFY_HOST:-}"
+fi
+if [ -z "$PORT" ]; then
+ PORT="${NOTIFY_PORT:-}"
+fi
+
+ssl_key=$(trim_string "$ssl_key");
+ssl_cert=$(trim_string "$ssl_cert");
+ssl_ca=$(trim_string "$ssl_ca");
+ssl_capath=$(trim_string "$ssl_capath");
+ssl_cipher=$(trim_string "$ssl_cipher");
+ssl_crl=$(trim_string "$ssl_crl");
+ssl_crlpath=$(trim_string "$ssl_crlpath");
+ssl_verify_server_cert=$(trim_string "$ssl_verify_server_cert");
+
+SSL_PARAM=""
+
+if [ -n "$ssl_key" -o -n "$ssl_cert" -o \
+ -n "$ssl_ca" -o -n "$ssl_capath" -o \
+ -n "$ssl_cipher" ]
+then
+ SSL_PARAM=' --ssl'
+ [ -n "$ssl_key" ] && SSL_PARAM="$SSL_PARAM --ssl-key='$ssl_key'"
+ [ -n "$ssl_cert" ] && SSL_PARAM="$SSL_PARAM --ssl-cert='$ssl_cert'"
+ [ -n "$ssl_ca" ] && SSL_PARAM="$SSL_PARAM --ssl-ca='$ssl_ca'"
+ [ -n "$ssl_capath" ] && SSL_PARAM="$SSL_PARAM --ssl-capath='$ssl_capath'"
+ [ -n "$ssl_cipher" ] && SSL_PARAM="$SSL_PARAM --ssl-cipher='$ssl_cipher'"
+ [ -n "$ssl_crl" ] && SSL_PARAM="$SSL_PARAM --ssl-crl='$ssl_crl'"
+ [ -n "$ssl_crlpath" ] && SSL_PARAM="$SSL_PARAM --ssl-crlpath='$ssl_crlpath'"
+ if [ -n "$ssl_verify_server_cert" ]; then
+ if [ $ssl_verify_server_cert -ne 0 ]; then
+ SSL_PARAM+=' --ssl-verify-server-cert'
+ fi
+ fi
+fi
+
+# Undefined means node is shutting down
+if [ "$STATUS" != 'Undefined' ]; then
+ "$COM" | eval "$CLIENT" -B "-u'$USER'"${PSWD:+" -p'$PSWD'"}\
+ "-h'$HOST'" "-P$PORT"$SSL_PARAM
+fi
+
+exit 0
diff --git a/mysql-test/suite/federated/federatedx_create_handlers.test b/mysql-test/suite/federated/federatedx_create_handlers.test
index 4b5789e1d96..8863a057b47 100644
--- a/mysql-test/suite/federated/federatedx_create_handlers.test
+++ b/mysql-test/suite/federated/federatedx_create_handlers.test
@@ -1,5 +1,6 @@
--source have_federatedx.inc
--source include/federated.inc
+--source include/no_valgrind_without_big.inc
connection default;
diff --git a/mysql-test/suite/galera/disabled.def b/mysql-test/suite/galera/disabled.def
index 34da18a9c22..77c2bb9659d 100644
--- a/mysql-test/suite/galera/disabled.def
+++ b/mysql-test/suite/galera/disabled.def
@@ -29,6 +29,7 @@ galera_var_dirty_reads : MDEV-25615 Galera test failure on galera_var_dirty_read
galera_var_ignore_apply_errors : MDEV-26770 galera_var_ignore_apply_errors fails Server did not transition to READY state
galera_var_node_address : MDEV-20485 Galera test failure
galera_var_notify_cmd : MDEV-21905 Galera test galera_var_notify_cmd causes hang
+galera_var_notify_ssl_ipv6 : hangs after the merge of MDEV-27682
galera_var_retry_autocommit: MDEV-18181 Galera test failure on galera.galera_var_retry_autocommit
galera_wsrep_provider_unset_set: wsrep_provider is read-only for security reasons
partition : MDEV-19958 Galera test failure on galera.partition
diff --git a/mysql-test/suite/galera/r/galera_var_notify_ssl_ipv6.result b/mysql-test/suite/galera/r/galera_var_notify_ssl_ipv6.result
new file mode 100644
index 00000000000..823407fbba7
--- /dev/null
+++ b/mysql-test/suite/galera/r/galera_var_notify_ssl_ipv6.result
@@ -0,0 +1,11 @@
+connection node_1;
+SELECT COUNT(DISTINCT uuid) AS EXPECT_2 FROM mtr_wsrep_notify.membership;
+EXPECT_2
+2
+SELECT MAX(size) AS EXPECT_2 FROM mtr_wsrep_notify.status;
+EXPECT_2
+2
+SELECT COUNT(DISTINCT idx) AS EXPECT_2 FROM mtr_wsrep_notify.status;
+EXPECT_2
+2
+DROP SCHEMA mtr_wsrep_notify;
diff --git a/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6-master.opt b/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6-master.opt
new file mode 100644
index 00000000000..99c5889916b
--- /dev/null
+++ b/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6-master.opt
@@ -0,0 +1 @@
+--wsrep_notify_cmd=$MYSQL_TEST_DIR/std_data/wsrep_notify_ssl.sh --wsrep-sync-wait=0
diff --git a/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.cnf b/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.cnf
new file mode 100644
index 00000000000..ce121d20e03
--- /dev/null
+++ b/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.cnf
@@ -0,0 +1,20 @@
+!include ../galera_2nodes.cnf
+
+[mysqld]
+ssl-cert=@ENV.MYSQL_TEST_DIR/std_data/server-cert.pem
+ssl-key=@ENV.MYSQL_TEST_DIR/std_data/server-key.pem
+ssl-ca=@ENV.MYSQL_TEST_DIR/std_data/cacert.pem
+bind-address=::
+
+[mysqld.1]
+wsrep_provider_options='base_port=@mysqld.1.#galera_port;gmcast.listen_addr=tcp://[::]:@mysqld.1.#galera_port;ist.recv_addr=[::1]:@mysqld.1.#ist_port;gcache.size=1;pc.ignore_sb=true'
+wsrep_node_incoming_address='[::1]:@mysqld.1.port'
+wsrep_node_address=::1
+wsrep_sst_receive_address='[::1]:@mysqld.1.#sst_port'
+
+[mysqld.2]
+wsrep_cluster_address='gcomm://[::1]:@mysqld.1.#galera_port'
+wsrep_provider_options='base_port=@mysqld.2.#galera_port;gmcast.listen_addr=tcp://[::]:@mysqld.2.#galera_port;ist.recv_addr=[::1]:@mysqld.2.#ist_port;gcache.size=1;pc.ignore_sb=true'
+wsrep_node_address=::1
+wsrep_node_incoming_address='[::1]:@mysqld.2.port'
+wsrep_sst_receive_address='[::1]:@mysqld.2.#sst_port'
diff --git a/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.test b/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.test
new file mode 100644
index 00000000000..2c2b106c2ae
--- /dev/null
+++ b/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.test
@@ -0,0 +1,20 @@
+#
+# Test wsrep_notify_cmd. We use a version of the support-files/wsrep_notify.sh script that writes
+# notifications into a table.
+#
+
+--source include/galera_cluster.inc
+--source include/have_ssl_communication.inc
+--source include/check_ipv6.inc
+--source include/force_restart.inc
+
+--connection node_1
+--let $wait_condition = SELECT COUNT(DISTINCT uuid) = 2 FROM mtr_wsrep_notify.membership;
+--source include/wait_condition.inc
+
+SELECT COUNT(DISTINCT uuid) AS EXPECT_2 FROM mtr_wsrep_notify.membership;
+SELECT MAX(size) AS EXPECT_2 FROM mtr_wsrep_notify.status;
+SELECT COUNT(DISTINCT idx) AS EXPECT_2 FROM mtr_wsrep_notify.status;
+
+# CLEANUP
+DROP SCHEMA mtr_wsrep_notify;
diff --git a/mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result b/mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result
index 7835f42b552..3f3b2db8f32 100644
--- a/mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result
+++ b/mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result
@@ -150,10 +150,7 @@ lock table t write;
connection prevent_purge;
commit;
connection default;
-InnoDB 0 transactions not purged
disconnect lock_table;
-start transaction with consistent snapshot;
-commit;
InnoDB 0 transactions not purged
set global debug_dbug=@old_dbug;
drop table t;
diff --git a/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test b/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test
index 2f1f8b29aba..d9b764a75a7 100644
--- a/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test
+++ b/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test
@@ -191,10 +191,7 @@ lock table t write;
connection prevent_purge;
commit;
connection default;
---source ../../innodb/include/wait_all_purged.inc
disconnect lock_table;
-start transaction with consistent snapshot;
-commit;
--source ../../innodb/include/wait_all_purged.inc
set global debug_dbug=@old_dbug;
drop table t;
diff --git a/mysql-test/suite/innodb/r/purge_secondary.result b/mysql-test/suite/innodb/r/purge_secondary.result
index a583e46418d..6c0612c7cfe 100644
--- a/mysql-test/suite/innodb/r/purge_secondary.result
+++ b/mysql-test/suite/innodb/r/purge_secondary.result
@@ -154,4 +154,19 @@ WHERE LOWER(variable_name) LIKE 'INNODB_BUFFER_POOL_PAGES_FLUSHED';
# FLUSH TABLES t1 FOR EXPORT;
# UNLOCK TABLES;
DROP TABLE t1;
+#
+# MDEV-29666 InnoDB fails to purge secondary index records
+# when indexed virtual columns exist
+#
+CREATE TABLE t1 (a INT, b INT, a1 INT AS(a) VIRTUAL,
+INDEX(a1),INDEX(b)) ENGINE=InnoDB;
+INSERT INTO t1 SET a=1, b=1;
+UPDATE t1 SET a=2, b=3;
+InnoDB 0 transactions not purged
+FLUSH TABLE t1 FOR EXPORT;
+page 4: N_RECS=0x0001
+page 5: N_RECS=0x0001
+UNLOCK TABLES;
+DROP TABLE t1;
+# End of 10.3 tests
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;
diff --git a/mysql-test/suite/innodb/t/alter_large_dml.test b/mysql-test/suite/innodb/t/alter_large_dml.test
index d8b288e5a9f..7320fa008af 100644
--- a/mysql-test/suite/innodb/t/alter_large_dml.test
+++ b/mysql-test/suite/innodb/t/alter_large_dml.test
@@ -5,6 +5,8 @@
--source include/have_debug.inc
--source include/have_debug_sync.inc
--source include/have_sequence.inc
+# This test often times out with MemorySanitizer.
+--source include/not_msan.inc
CREATE TABLE t1(f1 char(200), f2 char(200), f3 char(200),
f4 char(200), f5 char(200), f6 char(200),
diff --git a/mysql-test/suite/innodb/t/alter_missing_tablespace.test b/mysql-test/suite/innodb/t/alter_missing_tablespace.test
index bf7111509bd..bac1b1dcdcf 100644
--- a/mysql-test/suite/innodb/t/alter_missing_tablespace.test
+++ b/mysql-test/suite/innodb/t/alter_missing_tablespace.test
@@ -1,5 +1,6 @@
--source include/not_embedded.inc
--source include/innodb_page_size.inc
+--source include/no_valgrind_without_big.inc
--echo #
--echo # Bug#13955083 ALLOW IN-PLACE DDL OPERATIONS ON MISSING
diff --git a/mysql-test/suite/innodb/t/autoinc_persist.test b/mysql-test/suite/innodb/t/autoinc_persist.test
index 6e094b40e02..a2832bd5187 100644
--- a/mysql-test/suite/innodb/t/autoinc_persist.test
+++ b/mysql-test/suite/innodb/t/autoinc_persist.test
@@ -1,6 +1,7 @@
--source include/have_innodb.inc
# Restarting is not supported when testing the embedded server.
--source include/not_embedded.inc
+--source include/no_valgrind_without_big.inc
--echo #
--echo # MDEV-6076 Persistent AUTO_INCREMENT for InnoDB
diff --git a/mysql-test/suite/innodb/t/ibuf_not_empty.test b/mysql-test/suite/innodb/t/ibuf_not_empty.test
index 96ceb81ac00..207427d9ab8 100644
--- a/mysql-test/suite/innodb/t/ibuf_not_empty.test
+++ b/mysql-test/suite/innodb/t/ibuf_not_empty.test
@@ -1,4 +1,5 @@
--source include/have_innodb.inc
+--source include/no_valgrind_without_big.inc
# innodb_change_buffering_debug option is debug only
--source include/have_debug.inc
# Embedded server tests do not support restarting
diff --git a/mysql-test/suite/innodb/t/innodb-get-fk.test b/mysql-test/suite/innodb/t/innodb-get-fk.test
index 47db92a0c6d..b4b170b89f9 100644
--- a/mysql-test/suite/innodb/t/innodb-get-fk.test
+++ b/mysql-test/suite/innodb/t/innodb-get-fk.test
@@ -2,6 +2,8 @@
--source include/default_charset.inc
# need to restart server
--source include/not_embedded.inc
+--source include/no_valgrind_without_big.inc
+
CREATE SCHEMA `repro`;
CREATE TABLE `repro`.`crew` (
diff --git a/mysql-test/suite/innodb/t/innodb-stats-initialize-failure.test b/mysql-test/suite/innodb/t/innodb-stats-initialize-failure.test
index d5d04190b8a..ba37e82057f 100644
--- a/mysql-test/suite/innodb/t/innodb-stats-initialize-failure.test
+++ b/mysql-test/suite/innodb/t/innodb-stats-initialize-failure.test
@@ -1,5 +1,6 @@
# MDEV-6424: Mariadb server crashes with assertion failure in file ha_innodb.cc
--source include/have_innodb.inc
+--source include/no_valgrind_without_big.inc
# DEBUG_SYNC must be compiled in.
--source include/have_debug_sync.inc
diff --git a/mysql-test/suite/innodb/t/innodb-stats-sample.test b/mysql-test/suite/innodb/t/innodb-stats-sample.test
index 600688ab98d..34ca4c7b58e 100644
--- a/mysql-test/suite/innodb/t/innodb-stats-sample.test
+++ b/mysql-test/suite/innodb/t/innodb-stats-sample.test
@@ -1,4 +1,5 @@
--source include/have_innodb.inc
+--source include/no_valgrind_without_big.inc
#
# Test that mysqld does not crash when running ANALYZE TABLE with
# different values of the parameter innodb_stats_transient_sample_pages.
diff --git a/mysql-test/suite/innodb/t/innodb-trim.test b/mysql-test/suite/innodb/t/innodb-trim.test
index 3f8eb5f2c71..a077e6acafe 100644
--- a/mysql-test/suite/innodb/t/innodb-trim.test
+++ b/mysql-test/suite/innodb/t/innodb-trim.test
@@ -1,5 +1,6 @@
--source include/have_innodb.inc
--source include/have_innodb_punchhole.inc
+--source include/no_valgrind_without_big.inc
--disable_query_log
--disable_warnings
diff --git a/mysql-test/suite/innodb/t/innodb_bug30423.test b/mysql-test/suite/innodb/t/innodb_bug30423.test
index de53a935156..9d9975c04ca 100644
--- a/mysql-test/suite/innodb/t/innodb_bug30423.test
+++ b/mysql-test/suite/innodb/t/innodb_bug30423.test
@@ -1,4 +1,5 @@
--source include/have_innodb.inc
+--source include/no_valgrind_without_big.inc
# Test for Bug #30423, InnoDBs treatment of NULL in index stats causes
# bad "rows examined" estimates.
# Implemented InnoDB system variable "innodb_stats_method" with
diff --git a/mysql-test/suite/innodb/t/innodb_bug53290.test b/mysql-test/suite/innodb/t/innodb_bug53290.test
index ea15212fa39..9d36d9bd2f6 100644
--- a/mysql-test/suite/innodb/t/innodb_bug53290.test
+++ b/mysql-test/suite/innodb/t/innodb_bug53290.test
@@ -1,4 +1,5 @@
-- source include/have_innodb.inc
+-- source include/no_valgrind_without_big.inc
create table bug53290 (x bigint) engine=innodb;
diff --git a/mysql-test/suite/innodb/t/log_corruption.test b/mysql-test/suite/innodb/t/log_corruption.test
index b9162be99db..46f6384b3c9 100644
--- a/mysql-test/suite/innodb/t/log_corruption.test
+++ b/mysql-test/suite/innodb/t/log_corruption.test
@@ -1,5 +1,6 @@
--source include/have_innodb.inc
--source include/have_innodb_16k.inc
+--source include/no_valgrind_without_big.inc
--disable_query_log
call mtr.add_suppression("InnoDB: Upgrade after a crash is not supported");
diff --git a/mysql-test/suite/innodb/t/log_file.test b/mysql-test/suite/innodb/t/log_file.test
index e167bc6fb57..2484e787973 100644
--- a/mysql-test/suite/innodb/t/log_file.test
+++ b/mysql-test/suite/innodb/t/log_file.test
@@ -3,6 +3,7 @@
--echo # Bug#16418661 - CHANGING NAME IN FOR INNODB_DATA_FILE_PATH SHOULD NOT SUCCEED WITH LOG FILES
--source include/have_innodb.inc
+--source include/no_valgrind_without_big.inc
--disable_query_log
call mtr.add_suppression("InnoDB: Could not create undo tablespace.*undo002");
diff --git a/mysql-test/suite/innodb/t/log_file_name.test b/mysql-test/suite/innodb/t/log_file_name.test
index 2a7ed7b494d..89fe04bcdfb 100644
--- a/mysql-test/suite/innodb/t/log_file_name.test
+++ b/mysql-test/suite/innodb/t/log_file_name.test
@@ -2,7 +2,7 @@
# Test the detection of duplicate tablespaces.
--source include/have_innodb.inc
---source include/not_valgrind.inc
+--source include/no_valgrind_without_big.inc
# Embedded server does not support crashing
--source include/not_embedded.inc
diff --git a/mysql-test/suite/innodb/t/missing_tablespaces.test b/mysql-test/suite/innodb/t/missing_tablespaces.test
index 8dc325b3356..92f963a262d 100644
--- a/mysql-test/suite/innodb/t/missing_tablespaces.test
+++ b/mysql-test/suite/innodb/t/missing_tablespaces.test
@@ -4,6 +4,7 @@
--source include/not_embedded.inc
#Windows has trouble creating files/directories with long names
--source include/not_windows.inc
+--source include/no_valgrind_without_big.inc
--echo #
--echo # Bug#19419026 WHEN A TABLESPACE IS NOT FOUND, DO NOT REPORT "TABLE NOT FOUND"
diff --git a/mysql-test/suite/innodb/t/purge_secondary.test b/mysql-test/suite/innodb/t/purge_secondary.test
index f2c85ce10e7..1a0d178f66a 100644
--- a/mysql-test/suite/innodb/t/purge_secondary.test
+++ b/mysql-test/suite/innodb/t/purge_secondary.test
@@ -139,4 +139,36 @@ WHERE LOWER(variable_name) LIKE 'INNODB_BUFFER_POOL_PAGES_FLUSHED';
DROP TABLE t1;
+--echo #
+--echo # MDEV-29666 InnoDB fails to purge secondary index records
+--echo # when indexed virtual columns exist
+--echo #
+
+CREATE TABLE t1 (a INT, b INT, a1 INT AS(a) VIRTUAL,
+INDEX(a1),INDEX(b)) ENGINE=InnoDB;
+INSERT INTO t1 SET a=1, b=1;
+
+UPDATE t1 SET a=2, b=3;
+let DATADIR=`select @@datadir`;
+let PAGE_SIZE=`select @@innodb_page_size`;
+
+source include/wait_all_purged.inc;
+FLUSH TABLE t1 FOR EXPORT;
+
+perl;
+my $ps = $ENV{PAGE_SIZE};
+my $file = "$ENV{DATADIR}/test/t1.ibd";
+open(FILE, "<", $file) or die "Unable to open $file\n";
+die "Unable to read $file\n" unless
+ sysread(FILE, $_, 6*$ps) == 6*$ps;
+close(FILE);
+print "page 4: N_RECS=0x", unpack("H*", substr($_, 4 * $ps + 54, 2)), "\n";
+print "page 5: N_RECS=0x", unpack("H*", substr($_, 5 * $ps + 54, 2)), "\n";
+EOF
+
+UNLOCK TABLES;
+DROP TABLE t1;
+
+--echo # End of 10.3 tests
+
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;
diff --git a/mysql-test/suite/innodb/t/read_only_recover_committed.test b/mysql-test/suite/innodb/t/read_only_recover_committed.test
index 1d2270315c5..d61fbd3c522 100644
--- a/mysql-test/suite/innodb/t/read_only_recover_committed.test
+++ b/mysql-test/suite/innodb/t/read_only_recover_committed.test
@@ -1,6 +1,7 @@
--source include/have_innodb.inc
--source include/have_debug.inc
--source include/have_debug_sync.inc
+--source include/no_valgrind_without_big.inc
# need to restart server
--source include/not_embedded.inc
--source include/no_valgrind_without_big.inc
diff --git a/mysql-test/suite/innodb/t/recovery_shutdown.test b/mysql-test/suite/innodb/t/recovery_shutdown.test
index 85e49b255d3..968ea62833a 100644
--- a/mysql-test/suite/innodb/t/recovery_shutdown.test
+++ b/mysql-test/suite/innodb/t/recovery_shutdown.test
@@ -1,5 +1,6 @@
--source include/have_innodb.inc
--source include/not_embedded.inc
+--source include/no_valgrind_without_big.inc
--source include/have_sequence.inc
# Flush any open myisam tables from previous tests
diff --git a/mysql-test/suite/innodb/t/table_flags.test b/mysql-test/suite/innodb/t/table_flags.test
index d36e71b797a..6b2e6ee3ea6 100644
--- a/mysql-test/suite/innodb/t/table_flags.test
+++ b/mysql-test/suite/innodb/t/table_flags.test
@@ -1,7 +1,12 @@
--source include/innodb_page_size.inc
# Embedded server tests do not support restarting
--source include/not_embedded.inc
---source include/no_valgrind_without_big.inc
+# Slow shutdown may take more than 120 seconds under Valgrind,
+# causing the server to be (silently) killed.
+# Due to that, crash recovery could "heal" the damage that our
+# Perl code is inflicting, and the SELECT statements could succeed
+# instead of failing with ER_NO_SUCH_TABLE_IN_ENGINE.
+--source include/not_valgrind.inc
--disable_query_log
call mtr.add_suppression("InnoDB: Table `mysql`\\.`innodb_table_stats` not found");
diff --git a/mysql-test/suite/innodb/t/undo_truncate.test b/mysql-test/suite/innodb/t/undo_truncate.test
index d954ff28307..19829ce21e7 100644
--- a/mysql-test/suite/innodb/t/undo_truncate.test
+++ b/mysql-test/suite/innodb/t/undo_truncate.test
@@ -3,6 +3,7 @@
--source include/have_undo_tablespaces.inc
--source include/not_embedded.inc
--source include/have_sequence.inc
+--source include/no_valgrind_without_big.inc
--disable_query_log
call mtr.add_suppression("InnoDB: Difficult to find free blocks in the buffer pool");
diff --git a/mysql-test/suite/innodb_fts/t/innodb_fts_misc.test b/mysql-test/suite/innodb_fts/t/innodb_fts_misc.test
index 279cca3177a..b194ad20f71 100644
--- a/mysql-test/suite/innodb_fts/t/innodb_fts_misc.test
+++ b/mysql-test/suite/innodb_fts/t/innodb_fts_misc.test
@@ -3,6 +3,7 @@
#-----------------------------------------------------------------------------
--source include/have_innodb.inc
+--source include/no_valgrind_without_big.inc
--source include/default_charset.inc
let collation=UTF8_UNICODE_CI;
--source include/have_collation.inc
diff --git a/mysql-test/suite/innodb_fts/t/innodb_fts_plugin.test b/mysql-test/suite/innodb_fts/t/innodb_fts_plugin.test
index 6a7ad8c7d82..7ff36b6f4b6 100644
--- a/mysql-test/suite/innodb_fts/t/innodb_fts_plugin.test
+++ b/mysql-test/suite/innodb_fts/t/innodb_fts_plugin.test
@@ -1,5 +1,6 @@
--source include/have_innodb.inc
--source include/have_simple_parser.inc
+--source include/no_valgrind_without_big.inc
# Restart is not supported in embedded
--source include/not_embedded.inc
diff --git a/mysql-test/suite/mariabackup/log_page_corruption.test b/mysql-test/suite/mariabackup/log_page_corruption.test
index 8931eb1eaf7..b9b3a6e6a7b 100644
--- a/mysql-test/suite/mariabackup/log_page_corruption.test
+++ b/mysql-test/suite/mariabackup/log_page_corruption.test
@@ -1,4 +1,5 @@
--source include/have_debug.inc
+--source include/no_valgrind_without_big.inc
--echo ########
--echo # Test for generating "innodb_corrupted_pages" file during full and
diff --git a/mysql-test/suite/optimizer_unfixed_bugs/t/bug43448.test b/mysql-test/suite/optimizer_unfixed_bugs/t/bug43448.test
index 4e1df63b45b..69181c3615c 100644
--- a/mysql-test/suite/optimizer_unfixed_bugs/t/bug43448.test
+++ b/mysql-test/suite/optimizer_unfixed_bugs/t/bug43448.test
@@ -4,6 +4,7 @@
--source include/have_debug.inc
--source include/have_innodb.inc
+--source include/no_valgrind_without_big.inc
SET @saved_dbug = @@SESSION.debug_dbug;
# crash requires ICP support in InnoDB
diff --git a/mysql-test/suite/rpl/t/rpl_gtid_stop_start.test b/mysql-test/suite/rpl/t/rpl_gtid_stop_start.test
index 4a192230859..2cf184a3401 100644
--- a/mysql-test/suite/rpl/t/rpl_gtid_stop_start.test
+++ b/mysql-test/suite/rpl/t/rpl_gtid_stop_start.test
@@ -5,6 +5,7 @@ if (`SELECT $PS_PROTOCOL != 0`)
--let $rpl_topology=1->2
--source include/rpl_init.inc
--source include/have_innodb.inc
+--source include/no_valgrind_without_big.inc
--echo *** Test normal shutdown/restart of slave server configured as a GTID slave. ***
diff --git a/mysql-test/suite/rpl/t/rpl_mdev12179.test b/mysql-test/suite/rpl/t/rpl_mdev12179.test
index 2afcbf7b1e1..c8b9e665747 100644
--- a/mysql-test/suite/rpl/t/rpl_mdev12179.test
+++ b/mysql-test/suite/rpl/t/rpl_mdev12179.test
@@ -1,6 +1,7 @@
--source include/have_innodb.inc
--let $rpl_topology=1->2
--source include/rpl_init.inc
+--source include/no_valgrind_without_big.inc
--connection server_2
call mtr.add_suppression("The automatically created table.*name may not be entirely in lowercase");
diff --git a/mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.test b/mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.test
index 5e9cda6466e..2ee7d0aa052 100644
--- a/mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.test
+++ b/mysql-test/suite/rpl/t/rpl_semi_sync_shutdown_await_ack.test
@@ -1,3 +1,5 @@
+--source include/no_valgrind_without_big.inc
+
#
# Purpose:
# This test validates that data is consistent between a primary and replica
diff --git a/mysql-test/suite/stress/t/ddl_innodb.test b/mysql-test/suite/stress/t/ddl_innodb.test
index 083ec43e7d7..d5e23124b4b 100644
--- a/mysql-test/suite/stress/t/ddl_innodb.test
+++ b/mysql-test/suite/stress/t/ddl_innodb.test
@@ -1,3 +1,4 @@
+--source include/no_valgrind_without_big.inc
######## t/ddl_innodb.test ######
#
# Stress the storage engine InnoDB with CREATE/DROP TABLE/INDEX
diff --git a/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_at_shutdown_basic.test b/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_at_shutdown_basic.test
index feb7bf05638..072d1cec1a4 100644
--- a/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_at_shutdown_basic.test
+++ b/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_at_shutdown_basic.test
@@ -5,6 +5,7 @@
-- source include/have_innodb.inc
# include/restart_mysqld.inc does not work in embedded mode
-- source include/not_embedded.inc
+-- source include/no_valgrind_without_big.inc
# Check the default value
SET @orig = @@global.innodb_buffer_pool_dump_at_shutdown;
diff --git a/mysql-test/suite/sys_vars/t/innodb_flush_method_func.test b/mysql-test/suite/sys_vars/t/innodb_flush_method_func.test
index aad91d0f4a3..7293a99db41 100644
--- a/mysql-test/suite/sys_vars/t/innodb_flush_method_func.test
+++ b/mysql-test/suite/sys_vars/t/innodb_flush_method_func.test
@@ -1,6 +1,8 @@
--source include/have_innodb.inc
# Embedded server tests do not support restarting.
--source include/not_embedded.inc
+# InnoDB: Cannot read first page of './ibdata1' I/O error
+--source include/not_valgrind.inc
call mtr.add_suppression("InnoDB: Failed to set .*DIRECT");
--replace_result unbuffered fsync