-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MDEV-28986: rpl tests sometimes failing on freebsd builders
The rpl_row_img_sequence test can fail on resource constrained buildbot machines due to its high space consumption. To reduce this footprint, the test is split into three parts, one for each value of the binlog_row_img variable.
- Loading branch information
Showing
10 changed files
with
2,509 additions
and
2,311 deletions.
There are no files selected for viewing
2,290 changes: 0 additions & 2,290 deletions
2,290
mysql-test/suite/rpl/r/rpl_row_img_sequence.result
This file was deleted.
Oops, something went wrong.
767 changes: 767 additions & 0 deletions
767
mysql-test/suite/rpl/r/rpl_row_img_sequence_full.result
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
796 changes: 796 additions & 0 deletions
796
mysql-test/suite/rpl/r/rpl_row_img_sequence_noblob.result
Large diffs are not rendered by default.
Oops, something went wrong.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |