diff options
author | Oleksandr Byelkin <sanja@mariadb.com> | 2022-10-04 13:55:38 +0200 |
---|---|---|
committer | Oleksandr Byelkin <sanja@mariadb.com> | 2022-10-04 13:55:38 +0200 |
commit | 9206c1ea9746ab022f531e40eec7d930be137f21 (patch) | |
tree | 7fdd6dbee3e1d5df1801edf099d4b417ba5d6db5 /mysql-test/suite/rpl/t | |
parent | 8759967d1c53603ee63b7e28bdf6c76b80635073 (diff) | |
parent | bb76dcbec77d31818ec7dfc0d0dc1f4b49185bc5 (diff) | |
download | mariadb-git-9206c1ea9746ab022f531e40eec7d930be137f21.tar.gz |
Merge branch '10.10' into 10.11
Diffstat (limited to 'mysql-test/suite/rpl/t')
-rw-r--r-- | mysql-test/suite/rpl/t/rpl_lost_events_on_rotate.test | 1 | ||||
-rw-r--r-- | mysql-test/suite/rpl/t/rpl_row_img_sequence_full.cnf (renamed from mysql-test/suite/rpl/t/rpl_row_img_sequence.cnf) | 0 | ||||
-rw-r--r-- | mysql-test/suite/rpl/t/rpl_row_img_sequence_full.test | 48 | ||||
-rw-r--r-- | mysql-test/suite/rpl/t/rpl_row_img_sequence_min.cnf | 21 | ||||
-rw-r--r-- | mysql-test/suite/rpl/t/rpl_row_img_sequence_min.test (renamed from mysql-test/suite/rpl/t/rpl_row_img_sequence.test) | 29 | ||||
-rw-r--r-- | mysql-test/suite/rpl/t/rpl_row_img_sequence_noblob.cnf | 21 | ||||
-rw-r--r-- | mysql-test/suite/rpl/t/rpl_row_img_sequence_noblob.test | 51 | ||||
-rw-r--r-- | mysql-test/suite/rpl/t/rpl_seconds_behind_master_spike.test | 1 |
8 files changed, 151 insertions, 21 deletions
diff --git a/mysql-test/suite/rpl/t/rpl_lost_events_on_rotate.test b/mysql-test/suite/rpl/t/rpl_lost_events_on_rotate.test index 3a4a24e1762..8c4baafe23d 100644 --- a/mysql-test/suite/rpl/t/rpl_lost_events_on_rotate.test +++ b/mysql-test/suite/rpl/t/rpl_lost_events_on_rotate.test @@ -13,6 +13,7 @@ # during this window while forcing a rotation in the binlog. # --source include/have_debug.inc +--source include/have_debug_sync.inc --source include/master-slave.inc --connection master diff --git a/mysql-test/suite/rpl/t/rpl_row_img_sequence.cnf b/mysql-test/suite/rpl/t/rpl_row_img_sequence_full.cnf index 7104b4e4502..7104b4e4502 100644 --- a/mysql-test/suite/rpl/t/rpl_row_img_sequence.cnf +++ b/mysql-test/suite/rpl/t/rpl_row_img_sequence_full.cnf diff --git a/mysql-test/suite/rpl/t/rpl_row_img_sequence_full.test b/mysql-test/suite/rpl/t/rpl_row_img_sequence_full.test new file mode 100644 index 00000000000..a0c6aa4dc7a --- /dev/null +++ b/mysql-test/suite/rpl/t/rpl_row_img_sequence_full.test @@ -0,0 +1,48 @@ +# +# Purpose: +# The rpl_row_img_sequence group of tests verify that sequence MDL updates, +# i.e. NEXTVAL and SETVAL, respect the binlog_row_image variable value when +# written into the binary log. In particular, it ensures that only changed +# columns are written with MINIMAL image mode, and all columns are written +# otherwise. This test focuses on validating the behavior of +# binlog_row_img=FULL. +# +# Methodology +# After issuing a sequence update, ensure that both 1) it was replicated +# correctly, and 2) it was binlogged respective to the binlog_row_image value. +# The sequence table does not use caching to ensure each update is immediately +# binlogged. Each command is binlogged into its own unique log file, and the +# entirety of the file is analyzed for correctness of its sequence event. +# Specifically, mysqlbinlog is used in verbose mode so it outputs the columns +# which belong to the event, and the columns are analyzed to ensure the correct +# ones were logged. rpl_row_img_general_loop.inc is used to test with multiple +# chained replicas, varying engines between InnoDB and MyISAM. +# +# References: +# MDEV-28487: sequences not respect value of binlog_row_image with select +# nextval(seq_gen) +# + +--let $rpl_topology= 1->2->3 +--source include/rpl_init.inc +--source include/have_binlog_format_row.inc + +--connection server_1 +--source include/have_innodb.inc +--connection server_2 +--source include/have_innodb.inc +--connection server_3 +--source include/have_innodb.inc +--connection server_1 + +--echo # +--echo # binlog_row_image=FULL should write all columns to the binary log +--echo # +--let $row_img_set=server_1:FULL:N,server_2:FULL:Y,server_3:FULL:Y +--source include/rpl_row_img_set.inc +--let $expected_columns=(1,2,3,4,5,6,7,8) +--let row_img_test_script= include/rpl_row_img_sequence.inc +--source include/rpl_row_img_general_loop.inc + +--source include/rpl_end.inc +--echo # End of tests diff --git a/mysql-test/suite/rpl/t/rpl_row_img_sequence_min.cnf b/mysql-test/suite/rpl/t/rpl_row_img_sequence_min.cnf new file mode 100644 index 00000000000..7104b4e4502 --- /dev/null +++ b/mysql-test/suite/rpl/t/rpl_row_img_sequence_min.cnf @@ -0,0 +1,21 @@ +!include include/default_mysqld.cnf + +[mysqld.1] +log-slave-updates +innodb +gtid_domain_id=0 + +[mysqld.2] +log-slave-updates +innodb +gtid_domain_id=1 + +[mysqld.3] +log-slave-updates +innodb +gtid_domain_id=2 + +[ENV] +SERVER_MYPORT_1= @mysqld.1.port +SERVER_MYPORT_2= @mysqld.2.port +SERVER_MYPORT_3= @mysqld.3.port diff --git a/mysql-test/suite/rpl/t/rpl_row_img_sequence.test b/mysql-test/suite/rpl/t/rpl_row_img_sequence_min.test index 23860fb2de5..0a3b2827ffa 100644 --- a/mysql-test/suite/rpl/t/rpl_row_img_sequence.test +++ b/mysql-test/suite/rpl/t/rpl_row_img_sequence_min.test @@ -1,9 +1,11 @@ # # Purpose: -# This test verifies that sequence DML updates, i.e. NEXTVAL and SETVAL, -# respect the binlog_row_image variable value when written into the binary log. -# In particular, it ensures that only changed columns are written with MINIMAL -# image mode, and all columns are written otherwise. +# The rpl_row_img_sequence group of tests verify that sequence MDL updates, +# i.e. NEXTVAL and SETVAL, respect the binlog_row_image variable value when +# written into the binary log. In particular, it ensures that only changed +# columns are written with MINIMAL image mode, and all columns are written +# otherwise. This test focuses on validating the behavior of +# binlog_row_img=MINIMAL. # # Methodology # After issuing a sequence update, ensure that both 1) it was replicated @@ -34,8 +36,8 @@ --connection server_1 --echo # ---echo # Test Case 1) binlog_row_image=MINIMAL should write only columns ---echo # 1 and 8 to the binary log +--echo # binlog_row_image=MINIMAL should write only columns 1 and 8 to the +--echo # binary log --echo # --let $row_img_set=server_1:MINIMAL:N,server_2:MINIMAL:Y,server_3:MINIMAL:Y --source include/rpl_row_img_set.inc @@ -43,23 +45,8 @@ --let row_img_test_script= include/rpl_row_img_sequence.inc --source include/rpl_row_img_general_loop.inc ---echo # ---echo # Test Case 2) binlog_row_image=NOBLOB should write all columns to the ---echo # binary log ---echo # ---let $row_img_set=server_1:NOBLOB:N,server_2:NOBLOB:Y,server_3:NOBLOB:Y ---source include/rpl_row_img_set.inc ---let $expected_columns=(1,2,3,4,5,6,7,8) ---source include/rpl_row_img_general_loop.inc - ---echo # ---echo # Test Case 3) binlog_row_image=NOBLOB should write all columns to the ---echo # binary log ---echo # --let $row_img_set=server_1:FULL:N,server_2:FULL:Y,server_3:FULL:Y --source include/rpl_row_img_set.inc ---let $expected_columns=(1,2,3,4,5,6,7,8) ---source include/rpl_row_img_general_loop.inc --source include/rpl_end.inc --echo # End of tests diff --git a/mysql-test/suite/rpl/t/rpl_row_img_sequence_noblob.cnf b/mysql-test/suite/rpl/t/rpl_row_img_sequence_noblob.cnf new file mode 100644 index 00000000000..7104b4e4502 --- /dev/null +++ b/mysql-test/suite/rpl/t/rpl_row_img_sequence_noblob.cnf @@ -0,0 +1,21 @@ +!include include/default_mysqld.cnf + +[mysqld.1] +log-slave-updates +innodb +gtid_domain_id=0 + +[mysqld.2] +log-slave-updates +innodb +gtid_domain_id=1 + +[mysqld.3] +log-slave-updates +innodb +gtid_domain_id=2 + +[ENV] +SERVER_MYPORT_1= @mysqld.1.port +SERVER_MYPORT_2= @mysqld.2.port +SERVER_MYPORT_3= @mysqld.3.port diff --git a/mysql-test/suite/rpl/t/rpl_row_img_sequence_noblob.test b/mysql-test/suite/rpl/t/rpl_row_img_sequence_noblob.test new file mode 100644 index 00000000000..38ff469f22f --- /dev/null +++ b/mysql-test/suite/rpl/t/rpl_row_img_sequence_noblob.test @@ -0,0 +1,51 @@ +# +# Purpose: +# The rpl_row_img_sequence group of tests verify that sequence MDL updates, +# i.e. NEXTVAL and SETVAL, respect the binlog_row_image variable value when +# written into the binary log. In particular, it ensures that only changed +# columns are written with MINIMAL image mode, and all columns are written +# otherwise. This test focuses on validating the behavior of +# binlog_row_img=NOBLOB. +# +# Methodology +# After issuing a sequence update, ensure that both 1) it was replicated +# correctly, and 2) it was binlogged respective to the binlog_row_image value. +# The sequence table does not use caching to ensure each update is immediately +# binlogged. Each command is binlogged into its own unique log file, and the +# entirety of the file is analyzed for correctness of its sequence event. +# Specifically, mysqlbinlog is used in verbose mode so it outputs the columns +# which belong to the event, and the columns are analyzed to ensure the correct +# ones were logged. rpl_row_img_general_loop.inc is used to test with multiple +# chained replicas, varying engines between InnoDB and MyISAM. +# +# References: +# MDEV-28487: sequences not respect value of binlog_row_image with select +# nextval(seq_gen) +# + +--let $rpl_topology= 1->2->3 +--source include/rpl_init.inc +--source include/have_binlog_format_row.inc + +--connection server_1 +--source include/have_innodb.inc +--connection server_2 +--source include/have_innodb.inc +--connection server_3 +--source include/have_innodb.inc +--connection server_1 + +--echo # +--echo # binlog_row_image=NOBLOB should write all columns to the binary logs +--echo # +--let $row_img_set=server_1:NOBLOB:N,server_2:NOBLOB:Y,server_3:NOBLOB:Y +--source include/rpl_row_img_set.inc +--let $expected_columns=(1,2,3,4,5,6,7,8) +--let row_img_test_script= include/rpl_row_img_sequence.inc +--source include/rpl_row_img_general_loop.inc + +--let $row_img_set=server_1:FULL:N,server_2:FULL:Y,server_3:FULL:Y +--source include/rpl_row_img_set.inc + +--source include/rpl_end.inc +--echo # End of tests diff --git a/mysql-test/suite/rpl/t/rpl_seconds_behind_master_spike.test b/mysql-test/suite/rpl/t/rpl_seconds_behind_master_spike.test index e39b7726fe4..600ba9b18d7 100644 --- a/mysql-test/suite/rpl/t/rpl_seconds_behind_master_spike.test +++ b/mysql-test/suite/rpl/t/rpl_seconds_behind_master_spike.test @@ -20,6 +20,7 @@ # MDEV-16091: Seconds_Behind_Master spikes to millions of seconds # --source include/have_debug.inc +--source include/have_debug_sync.inc --source include/have_innodb.inc --source include/master-slave.inc |