Commit 65498bf0 authored by Bjorn Munch's avatar Bjorn Munch

merge from 5.5-mtr

parents b4a74617 46133871
perl mysql-test-run.pl --force --timer --debug-server --parallel=auto --experimental=collections/default.experimental --comment=normal --vardir=var-normal --report-features --skip-test-list=collections/disabled-daily.list perl mysql-test-run.pl --force --timer --debug-server --parallel=auto --experimental=collections/default.experimental --comment=normal --vardir=var-normal --report-features --skip-test-list=collections/disabled-daily.list --unit-tests
perl mysql-test-run.pl --force --timer --debug-server --parallel=auto --experimental=collections/default.experimental --comment=n_mix --vardir=var-n_mix --mysqld=--binlog-format=mixed --skip-test-list=collections/disabled-daily.list perl mysql-test-run.pl --force --timer --debug-server --parallel=auto --experimental=collections/default.experimental --comment=n_mix --vardir=var-n_mix --mysqld=--binlog-format=mixed --skip-test-list=collections/disabled-daily.list
perl mysql-test-run.pl --force --timer --debug-server --parallel=auto --experimental=collections/default.experimental --comment=row --vardir=var-row --mysqld=--binlog-format=row --skip-test-list=collections/disabled-daily.list perl mysql-test-run.pl --force --timer --debug-server --parallel=auto --experimental=collections/default.experimental --comment=row --vardir=var-row --mysqld=--binlog-format=row --skip-test-list=collections/disabled-daily.list
perl mysql-test-run.pl --force --timer --debug-server --parallel=auto --experimental=collections/default.experimental --comment=ps_row --vardir=var-ps_row --mysqld=--binlog-format=row --ps-protocol --skip-test-list=collections/disabled-daily.list perl mysql-test-run.pl --force --timer --debug-server --parallel=auto --experimental=collections/default.experimental --comment=ps_row --vardir=var-ps_row --mysqld=--binlog-format=row --ps-protocol --skip-test-list=collections/disabled-daily.list
......
perl mysql-test-run.pl --timer --force --parallel=auto --comment=n_mix --vardir=var-n_mix --mysqld=--binlog-format=mixed --experimental=collections/default.experimental --skip-ndb --skip-test-list=collections/disabled-per-push.list perl mysql-test-run.pl --timer --force --parallel=auto --comment=n_mix --vardir=var-n_mix --mysqld=--binlog-format=mixed --experimental=collections/default.experimental --skip-ndb --skip-test-list=collections/disabled-per-push.list --unit-tests
perl mysql-test-run.pl --timer --force --parallel=auto --comment=ps_row --vardir=var-ps_row --ps-protocol --mysqld=--binlog-format=row --experimental=collections/default.experimental --skip-ndb --skip-test-list=collections/disabled-per-push.list perl mysql-test-run.pl --timer --force --parallel=auto --comment=ps_row --vardir=var-ps_row --ps-protocol --mysqld=--binlog-format=row --experimental=collections/default.experimental --skip-ndb --skip-test-list=collections/disabled-per-push.list
perl mysql-test-run.pl --timer --force --parallel=auto --comment=embedded --vardir=var-emebbed --embedded --experimental=collections/default.experimental --skip-ndb perl mysql-test-run.pl --timer --force --parallel=auto --comment=embedded --vardir=var-emebbed --embedded --experimental=collections/default.experimental --skip-ndb
perl mysql-test-run.pl --timer --force --parallel=auto --comment=rpl_binlog_row --vardir=var-rpl_binlog_row --suite=rpl,binlog --mysqld=--binlog-format=row --experimental=collections/default.experimental --skip-ndb --skip-test-list=collections/disabled-per-push.list perl mysql-test-run.pl --timer --force --parallel=auto --comment=rpl_binlog_row --vardir=var-rpl_binlog_row --suite=rpl,binlog --mysqld=--binlog-format=row --experimental=collections/default.experimental --skip-ndb --skip-test-list=collections/disabled-per-push.list
......
...@@ -345,6 +345,7 @@ SHOW SESSION VARIABLES LIKE "%_checks"; ...@@ -345,6 +345,7 @@ SHOW SESSION VARIABLES LIKE "%_checks";
--echo # INSERT INTO t1 VALUES(2) --echo # INSERT INTO t1 VALUES(2)
--echo # foreign_key_checks=1 and unique_checks=1 --echo # foreign_key_checks=1 and unique_checks=1
--echo # It should not change current session's variables, even error happens --echo # It should not change current session's variables, even error happens
call mtr.add_suppression("Slave SQL.*Could not execute Write_rows event on table test.t1; Duplicate entry .2. for key .PRIMARY., Error_code: 1062");
--error 1062 --error 1062
BINLOG ' BINLOG '
dfLtTBMBAAAAKQAAAKsBAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE= dfLtTBMBAAAAKQAAAKsBAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE=
......
...@@ -382,6 +382,7 @@ source include/start_slave.inc; ...@@ -382,6 +382,7 @@ source include/start_slave.inc;
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*"); CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*");
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*"); CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*");
CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*"); CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*");
CALL mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occured on the master. Message: error writing to the binary log");
connection master; connection master;
TRUNCATE t1; TRUNCATE t1;
......
...@@ -97,6 +97,7 @@ if (`SELECT @@global.binlog_format != 'ROW' OR @@global.slave_exec_mode = 'STRIC ...@@ -97,6 +97,7 @@ if (`SELECT @@global.binlog_format != 'ROW' OR @@global.slave_exec_mode = 'STRIC
--disable_query_log --disable_query_log
--eval SELECT "$err" as 'Last_SQL_Error (expected "duplicate key" error)' --eval SELECT "$err" as 'Last_SQL_Error (expected "duplicate key" error)'
--enable_query_log --enable_query_log
call mtr.add_suppression("Slave SQL.*Duplicate entry .1. for key .PRIMARY.* Error_code: 1062");
SELECT * FROM t1; SELECT * FROM t1;
...@@ -142,6 +143,7 @@ connection slave; ...@@ -142,6 +143,7 @@ connection slave;
# replication continues. # replication continues.
if (`SELECT @@global.binlog_format = 'ROW' AND @@global.slave_exec_mode = 'STRICT'`) { if (`SELECT @@global.binlog_format = 'ROW' AND @@global.slave_exec_mode = 'STRICT'`) {
--echo ---- Wait until slave stops with an error ---- --echo ---- Wait until slave stops with an error ----
call mtr.add_suppression("Slave SQL.*Can.t find record in .t1., Error_code: 1032");
let $slave_sql_errno= 1032; # ER_KEY_NOT_FOUND let $slave_sql_errno= 1032; # ER_KEY_NOT_FOUND
source include/wait_for_slave_sql_error.inc; source include/wait_for_slave_sql_error.inc;
......
...@@ -121,6 +121,13 @@ SELECT f1,f2,f3,f4,f5,f6,f7,f8,f9, ...@@ -121,6 +121,13 @@ SELECT f1,f2,f3,f4,f5,f6,f7,f8,f9,
hex(f10),hex(f11) FROM t1 ORDER BY f3 LIMIT 20; hex(f10),hex(f11) FROM t1 ORDER BY f3 LIMIT 20;
#connection slave; #connection slave;
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 2 type mismatch.* 1535");
call mtr.add_suppression("Slave SQL.*Error .Can.t DROP .c7.; check that column.key exists. on query.* 1091");
call mtr.add_suppression("Slave SQL.*Error .Unknown column .c7. in .t15.. on query.* 1054");
call mtr.add_suppression("Slave SQL.*Error .Key column .c6. doesn.t exist in table. on query.* 1072");
call mtr.add_suppression("Slave SQL.*Column 2 of table .test.t1.. cannot be converted from type.* Error_code: 1677");
sync_slave_with_master; sync_slave_with_master;
--echo --echo
--echo * Select count and 20 rows from Slave * --echo * Select count and 20 rows from Slave *
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
################################################# #################################################
call mtr.add_suppression("Slave: Unknown table 't6' Error_code: 1051"); call mtr.add_suppression("Slave: Unknown table 't6' Error_code: 1051");
call mtr.add_suppression("Slave SQL.*Column [0-9] of table .test.t[0-9]*. cannot be converted from type.* Error_code: 1677");
--echo **** Diff Table Def Start **** --echo **** Diff Table Def Start ****
...@@ -769,6 +770,10 @@ RESET MASTER; ...@@ -769,6 +770,10 @@ RESET MASTER;
connection slave; connection slave;
START SLAVE; START SLAVE;
call mtr.add_suppression("Error .Unknown table .t6.. on query.* Error_code: 1051");
call mtr.add_suppression("Error .Duplicate column name .c6.. on query.* Error_code: 1060");
call mtr.add_suppression("Table definition on master and slave does not match: Column . ...e mismatch.* Error_code: 1535");
--echo *** Master Data Insert *** --echo *** Master Data Insert ***
connection master; connection master;
set @b1 = 'b1b1b1b1'; set @b1 = 'b1b1b1b1';
......
...@@ -69,6 +69,8 @@ eval $lower_stmt_head infile '../../std_data/rpl_loaddata.dat' into table t1; ...@@ -69,6 +69,8 @@ eval $lower_stmt_head infile '../../std_data/rpl_loaddata.dat' into table t1;
save_master_pos; save_master_pos;
connection slave; connection slave;
# 1062 = ER_DUP_ENTRY # 1062 = ER_DUP_ENTRY
call mtr.add_suppression("Slave SQL.*Error .Duplicate entry .10. for key .b.. on query.* Error_code: 1062");
call mtr.add_suppression("Slave SQL.*Query caused different errors on master and slave.*Error on master:.*error code=1062.*Error on slave:.*Error_code: 0");
--let $slave_sql_errno= 1062 --let $slave_sql_errno= 1062
--source include/wait_for_slave_sql_error_and_skip.inc --source include/wait_for_slave_sql_error_and_skip.inc
......
...@@ -382,6 +382,9 @@ source include/diff_tables.inc; ...@@ -382,6 +382,9 @@ source include/diff_tables.inc;
connection slave; connection slave;
SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions; SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions;
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 1 size mismatch.* Error_code: 1535");
call mtr.add_suppression("Slave SQL.*Could not execute Delete_rows event on table test.t1.* Error_code: 1032");
call mtr.add_suppression("Slave SQL.*Column 1 of table .test.t.. cannot be converted from type.*, Error_code: 1677");
--let $rpl_only_running_threads= 1 --let $rpl_only_running_threads= 1
--source include/rpl_reset.inc --source include/rpl_reset.inc
......
...@@ -147,6 +147,8 @@ sync_slave_with_master; ...@@ -147,6 +147,8 @@ sync_slave_with_master;
connection master; connection master;
INSERT INTO t4 VALUES (4); INSERT INTO t4 VALUES (4);
connection slave; connection slave;
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column [012] type mismatch.* Error_code: 1535");
call mtr.add_suppression("Slave SQL.*Column [0-9] of table .test.t[0-9]. cannot be converted from type.* Error_code: 1677");
--let $slave_skip_counter= 2 --let $slave_skip_counter= 2
--let $slave_sql_errno= 1677 --let $slave_sql_errno= 1677
--let $show_slave_sql_error= 1 --let $show_slave_sql_error= 1
......
...@@ -25,6 +25,7 @@ drop table t1; ...@@ -25,6 +25,7 @@ drop table t1;
connection slave; connection slave;
--source include/wait_for_slave_sql_to_stop.inc --source include/wait_for_slave_sql_to_stop.inc
call mtr.add_suppression("Slave SQL.*Query caused different errors on master and slave.*Error on master:.* error code=1062.*Error on slave:.* Error_code: 0");
let $error= query_get_value(SHOW SLAVE STATUS, Last_SQL_Error, 1); let $error= query_get_value(SHOW SLAVE STATUS, Last_SQL_Error, 1);
let $errno= query_get_value(SHOW SLAVE STATUS, Last_SQL_Errno, 1); let $errno= query_get_value(SHOW SLAVE STATUS, Last_SQL_Errno, 1);
--echo Error: "$error" (expected different error codes on master and slave) --echo Error: "$error" (expected different error codes on master and slave)
......
...@@ -23,6 +23,8 @@ insert into tm set a=null; # to simulate killed status on the slave ...@@ -23,6 +23,8 @@ insert into tm set a=null; # to simulate killed status on the slave
commit; commit;
connection slave; connection slave;
call mtr.add_suppression("Slave SQL.*slave SQL thread is being stopped in the middle of applying of a group having updated a non-transaction table");
call mtr.add_suppression("Slave SQL.*The slave SQL is stopped, leaving the current group of events unfinished with a non-transaction table changed.");
# slave will catch the killed status but won't shut down immediately # slave will catch the killed status but won't shut down immediately
# only after the whole group has done (commit) # only after the whole group has done (commit)
......
...@@ -125,7 +125,6 @@ INSERT INTO global_suppressions VALUES ...@@ -125,7 +125,6 @@ INSERT INTO global_suppressions VALUES
("Slave: The incident LOST_EVENTS occured on the master"), ("Slave: The incident LOST_EVENTS occured on the master"),
("Slave: Unknown error.* 1105"), ("Slave: Unknown error.* 1105"),
("Slave: Can't drop database.* database doesn't exist"), ("Slave: Can't drop database.* database doesn't exist"),
("Slave SQL:.*(Error_code: \[\[:digit:\]\]+|Query:.*)"),
("Sort aborted"), ("Sort aborted"),
("Time-out in NDB"), ("Time-out in NDB"),
("Warning:\s+One can only use the --user.*root"), ("Warning:\s+One can only use the --user.*root"),
......
...@@ -28,8 +28,6 @@ use My::Platform; ...@@ -28,8 +28,6 @@ use My::Platform;
use base qw(Exporter); use base qw(Exporter);
our @EXPORT= qw(my_find_bin my_find_dir my_find_file NOT_REQUIRED); our @EXPORT= qw(my_find_bin my_find_dir my_find_file NOT_REQUIRED);
our $vs_config_dir;
my $bin_extension= ".exe" if IS_WINDOWS; my $bin_extension= ".exe" if IS_WINDOWS;
# Helper function to be used for fourth parameter to find functions # Helper function to be used for fourth parameter to find functions
...@@ -158,7 +156,8 @@ sub my_find_paths { ...@@ -158,7 +156,8 @@ sub my_find_paths {
# User can select to look in a special build dir # User can select to look in a special build dir
# which is a subdirectory of any of the paths # which is a subdirectory of any of the paths
my @extra_dirs; my @extra_dirs;
my $build_dir= $vs_config_dir || $ENV{MTR_VS_CONFIG} || $ENV{MTR_BUILD_DIR}; my $build_dir= $::opt_config_dir || $ENV{MTR_VS_CONFIG}
|| $ENV{MTR_BUILD_DIR};
push(@extra_dirs, $build_dir) if defined $build_dir; push(@extra_dirs, $build_dir) if defined $build_dir;
if (defined $extension){ if (defined $extension){
......
...@@ -32,6 +32,7 @@ our @EXPORT= qw(report_option mtr_print_line mtr_print_thick_line ...@@ -32,6 +32,7 @@ our @EXPORT= qw(report_option mtr_print_line mtr_print_thick_line
use mtr_match; use mtr_match;
use My::Platform; use My::Platform;
use POSIX qw[ _exit ]; use POSIX qw[ _exit ];
use IO::Handle qw[ flush ];
require "mtr_io.pl"; require "mtr_io.pl";
my $tot_real_time= 0; my $tot_real_time= 0;
...@@ -72,7 +73,7 @@ sub _mtr_report_test_name ($) { ...@@ -72,7 +73,7 @@ sub _mtr_report_test_name ($) {
print _name(). _timestamp(); print _name(). _timestamp();
printf "%-40s ", $tname; printf "%-40s ", $tname;
my $worker = $tinfo->{worker}; my $worker = $tinfo->{worker};
printf "w$worker " if $worker; print "w$worker " if defined $worker;
return $tname; return $tname;
} }
...@@ -487,6 +488,7 @@ sub mtr_warning (@) { ...@@ -487,6 +488,7 @@ sub mtr_warning (@) {
# Print error to screen and then exit # Print error to screen and then exit
sub mtr_error (@) { sub mtr_error (@) {
IO::Handle::flush(\*STDOUT) if IS_WINDOWS;
print STDERR _name(). _timestamp(). print STDERR _name(). _timestamp().
"mysql-test-run: *** ERROR: ". join(" ", @_). "\n"; "mysql-test-run: *** ERROR: ". join(" ", @_). "\n";
if (IS_WINDOWS) if (IS_WINDOWS)
......
...@@ -194,6 +194,10 @@ my $opt_debug_common; ...@@ -194,6 +194,10 @@ my $opt_debug_common;
our $opt_debug_server; our $opt_debug_server;
our @opt_cases; # The test cases names in argv our @opt_cases; # The test cases names in argv
our $opt_embedded_server; our $opt_embedded_server;
# -1 indicates use default, override with env.var.
my $opt_ctest= env_or_val(MTR_UNIT_TESTS => -1);
# Unit test report stored here for delayed printing
my $ctest_report;
# Options used when connecting to an already running server # Options used when connecting to an already running server
my %opts_extern; my %opts_extern;
...@@ -493,6 +497,10 @@ sub main { ...@@ -493,6 +497,10 @@ sub main {
mtr_error("Not all tests completed"); mtr_error("Not all tests completed");
} }
mark_time_used('init');
push @$completed, run_ctest() if $opt_ctest;
mtr_print_line(); mtr_print_line();
if ( $opt_gcov ) { if ( $opt_gcov ) {
...@@ -500,6 +508,11 @@ sub main { ...@@ -500,6 +508,11 @@ sub main {
$opt_gcov_msg, $opt_gcov_err); $opt_gcov_msg, $opt_gcov_err);
} }
if ($ctest_report) {
print "$ctest_report\n";
mtr_print_line();
}
print_total_times($opt_parallel) if $opt_report_times; print_total_times($opt_parallel) if $opt_report_times;
mtr_report_stats("Completed", $completed); mtr_report_stats("Completed", $completed);
...@@ -1055,6 +1068,7 @@ sub command_line_setup { ...@@ -1055,6 +1068,7 @@ sub command_line_setup {
'max-connections=i' => \$opt_max_connections, 'max-connections=i' => \$opt_max_connections,
'default-myisam!' => \&collect_option, 'default-myisam!' => \&collect_option,
'report-times' => \$opt_report_times, 'report-times' => \$opt_report_times,
'unit-tests!' => \$opt_ctest,
'help|h' => \$opt_usage, 'help|h' => \$opt_usage,
# list-options is internal, not listed in help # list-options is internal, not listed in help
...@@ -1484,6 +1498,14 @@ sub command_line_setup { ...@@ -1484,6 +1498,14 @@ sub command_line_setup {
if $opt_suites || @opt_cases; if $opt_suites || @opt_cases;
} }
# --------------------------------------------------------------------------
# Don't run ctest if tests or suites named
# --------------------------------------------------------------------------
$opt_ctest= 0 if $opt_ctest == -1 && ($opt_suites || @opt_cases);
# Override: disable if running in the PB test environment
$opt_ctest= 0 if $opt_ctest == -1 && defined $ENV{PB2WORKDIR};
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
# Check use of wait-all # Check use of wait-all
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
...@@ -5648,6 +5670,78 @@ sub valgrind_exit_reports() { ...@@ -5648,6 +5670,78 @@ sub valgrind_exit_reports() {
return $found_err; return $found_err;
} }
sub run_ctest() {
my $olddir= getcwd();
chdir ($bindir) or die ("Could not chdir to $bindir");
my $tinfo;
my $no_ctest= (IS_WINDOWS) ? 256 : -1;
my $ctest_vs= "";
# Just ignore if not configured/built to run ctest
if (! -f "CTestTestfile.cmake") {
chdir($olddir);
return;
}
# Add vs-config option if needed
$ctest_vs= "-C $opt_vs_config" if $opt_vs_config;
# Also silently ignore if we don't have ctest and didn't insist
# Special override: also ignore in Pushbuild, some platforms may not have it
# Now, run ctest and collect output
my $ctest_out= `ctest $ctest_vs 2>&1`;
if ($? == $no_ctest && $opt_ctest == -1 && ! defined $ENV{PB2WORKDIR}) {
chdir($olddir);
return;
}
# Create minimalistic "test" for the reporting
$tinfo = My::Test->new
(
name => 'unit_tests',
);
# Set dummy worker id to align report with normal tests
$tinfo->{worker} = 0 if $opt_parallel > 1;
my $ctfail= 0; # Did ctest fail?
if ($?) {
$ctfail= 1;
$tinfo->{result}= 'MTR_RES_FAILED';
$tinfo->{comment}= "ctest failed with exit code $?, see result below";
$ctest_out= "" unless $ctest_out;
}
my $ctfile= "$opt_vardir/ctest.log";
my $ctres= 0; # Did ctest produce report summary?
open (CTEST, " > $ctfile") or die ("Could not open output file $ctfile");
# Put ctest output in log file, while analyzing results
for (split ('\n', $ctest_out)) {
print CTEST "$_\n";
if (/tests passed/) {
$ctres= 1;
$ctest_report .= "\nUnit tests: $_\n";
}
if ( /FAILED/ or /\(Failed\)/ ) {
$ctfail= 1;
$ctest_report .= " $_\n";
}
}
close CTEST;
# Set needed 'attributes' for test reporting
$tinfo->{comment}.= "\nctest did not pruduce report summary" if ! $ctres;
$tinfo->{result}= ($ctres && !$ctfail)
? 'MTR_RES_PASSED' : 'MTR_RES_FAILED';
$ctest_report .= "Report from unit tests in $ctfile";
$tinfo->{failures}= ($tinfo->{result} eq 'MTR_RES_FAILED');
mark_time_used('test');
mtr_report_test($tinfo);
chdir($olddir);
return $tinfo;
}
# #
# Usage # Usage
# #
...@@ -5866,6 +5960,9 @@ Misc options ...@@ -5866,6 +5960,9 @@ Misc options
engine to InnoDB. engine to InnoDB.
report-times Report how much time has been spent on different report-times Report how much time has been spent on different
phases of test execution. phases of test execution.
nounit-tests Do not run unit tests. Normally run if configured
and if not running named tests/suites
unit-tests Run unit tests even if they would otherwise not be run
Some options that control enabling a feature for normal test runs, Some options that control enabling a feature for normal test runs,
can be turned off by prepending 'no' to the option, e.g. --notimer. can be turned off by prepending 'no' to the option, e.g. --notimer.
......
...@@ -431,6 +431,7 @@ Success: Was able to run 'execute stmt1' under FTWRL. ...@@ -431,6 +431,7 @@ Success: Was able to run 'execute stmt1' under FTWRL.
Success: Was able to run 'execute stmt1' with FTWRL active in another connection. Success: Was able to run 'execute stmt1' with FTWRL active in another connection.
Success: Was able to run FTWRL while 'execute stmt1' was active in another connection. Success: Was able to run FTWRL while 'execute stmt1' was active in another connection.
deallocate prepare stmt1; deallocate prepare stmt1;
call mtr.add_suppression("Slave SQL.*Can.t execute the query because you have a conflicting read lock., Error_code: 1223");
# #
# 9.2.b) EXECUTE for statement which is incompatible with FTWRL # 9.2.b) EXECUTE for statement which is incompatible with FTWRL
# should be also incompatible. # should be also incompatible.
......
...@@ -91,6 +91,9 @@ iONkSBcBAAAAKwAAAMQBAAAQABAAAAAAAAEAA//4AQAAAAMAMTIzAQAAAA== ...@@ -91,6 +91,9 @@ iONkSBcBAAAAKwAAAMQBAAAQABAAAAAAAAEAA//4AQAAAAMAMTIzAQAAAA==
'; ';
ERROR HY000: master may suffer from http://bugs.mysql.com/bug.php?id=37426 so slave stops; check error log on slave for more info ERROR HY000: master may suffer from http://bugs.mysql.com/bug.php?id=37426 so slave stops; check error log on slave for more info
drop table t1, char63_utf8, char128_utf8; drop table t1, char63_utf8, char128_utf8;
call mtr.add_suppression("Slave SQL.*master suffers from this bug: http:..bugs.mysql.com.bug.php.id=37426.* Error_code: 1105");
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 1 size mismatch.* Error_code: 1535");
call mtr.add_suppression("Slave SQL.*Column 1 of table .test.char128_utf8. cannot be converted.* Error_code: 1677");
# #
# Bug #54393: crash and/or valgrind errors in # Bug #54393: crash and/or valgrind errors in
# mysql_client_binlog_statement # mysql_client_binlog_statement
......
...@@ -1374,6 +1374,7 @@ unique_checks OFF ...@@ -1374,6 +1374,7 @@ unique_checks OFF
# INSERT INTO t1 VALUES(2) # INSERT INTO t1 VALUES(2)
# foreign_key_checks=1 and unique_checks=1 # foreign_key_checks=1 and unique_checks=1
# It should not change current session's variables, even error happens # It should not change current session's variables, even error happens
call mtr.add_suppression("Slave SQL.*Could not execute Write_rows event on table test.t1; Duplicate entry .2. for key .PRIMARY., Error_code: 1062");
BINLOG ' BINLOG '
dfLtTBMBAAAAKQAAAKsBAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE= dfLtTBMBAAAAKQAAAKsBAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE=
dfLtTBcBAAAAIgAAAM0BAAAAABcAAAAAAAEAAf/+AgAAAA== dfLtTBcBAAAAIgAAAM0BAAAAABcAAAAAAAEAAf/+AgAAAA==
......
...@@ -864,6 +864,7 @@ unique_checks OFF ...@@ -864,6 +864,7 @@ unique_checks OFF
# INSERT INTO t1 VALUES(2) # INSERT INTO t1 VALUES(2)
# foreign_key_checks=1 and unique_checks=1 # foreign_key_checks=1 and unique_checks=1
# It should not change current session's variables, even error happens # It should not change current session's variables, even error happens
call mtr.add_suppression("Slave SQL.*Could not execute Write_rows event on table test.t1; Duplicate entry .2. for key .PRIMARY., Error_code: 1062");
BINLOG ' BINLOG '
dfLtTBMBAAAAKQAAAKsBAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE= dfLtTBMBAAAAKQAAAKsBAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE=
dfLtTBcBAAAAIgAAAM0BAAAAABcAAAAAAAEAAf/+AgAAAA== dfLtTBcBAAAAIgAAAM0BAAAAABcAAAAAAAEAAf/+AgAAAA==
......
...@@ -151,6 +151,9 @@ iONkSBcBAAAAKwAAAMQBAAAQABAAAAAAAAEAA//4AQAAAAMAMTIzAQAAAA== ...@@ -151,6 +151,9 @@ iONkSBcBAAAAKwAAAMQBAAAQABAAAAAAAAEAA//4AQAAAAMAMTIzAQAAAA==
drop table t1, char63_utf8, char128_utf8; drop table t1, char63_utf8, char128_utf8;
call mtr.add_suppression("Slave SQL.*master suffers from this bug: http:..bugs.mysql.com.bug.php.id=37426.* Error_code: 1105");
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 1 size mismatch.* Error_code: 1535");
call mtr.add_suppression("Slave SQL.*Column 1 of table .test.char128_utf8. cannot be converted.* Error_code: 1677");
--echo # --echo #
--echo # Bug #54393: crash and/or valgrind errors in --echo # Bug #54393: crash and/or valgrind errors in
......
include/master-slave.inc include/master-slave.inc
[connection master] [connection master]
call mtr.add_suppression('Found invalid event in binary log'); call mtr.add_suppression('Found invalid event in binary log');
call mtr.add_suppression('Slave SQL.*Relay log read failure: Could not parse relay log event entry.* 1594');
==== Initialize ==== ==== Initialize ====
include/stop_slave.inc include/stop_slave.inc
RESET SLAVE; RESET SLAVE;
......
include/master-slave.inc include/master-slave.inc
[connection master] [connection master]
call mtr.add_suppression("Failed during slave I/O thread initialization"); call mtr.add_suppression("Failed during slave I/O thread initialization");
call mtr.add_suppression("Slave SQL.*Failed during slave thread initialization.* 1593");
include/stop_slave.inc include/stop_slave.inc
reset slave; reset slave;
SET GLOBAL debug="d,simulate_io_slave_error_on_init,simulate_sql_slave_error_on_init"; SET GLOBAL debug="d,simulate_io_slave_error_on_init,simulate_sql_slave_error_on_init";
......
...@@ -5,6 +5,7 @@ include/rpl_init.inc [topology=1->2->3->4->1] ...@@ -5,6 +5,7 @@ include/rpl_init.inc [topology=1->2->3->4->1]
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL, PRIMARY KEY(a)) ENGINE=MyISAM; CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL, PRIMARY KEY(a)) ENGINE=MyISAM;
CREATE TABLE t2 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL, PRIMARY KEY(a)) ENGINE=InnoDB; CREATE TABLE t2 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL, PRIMARY KEY(a)) ENGINE=InnoDB;
include/rpl_sync.inc include/rpl_sync.inc
call mtr.add_suppression("Slave SQL.*slave SQL thread is being stopped in the middle of applying of a group having updated a non-transaction table");
*** Testing schema A->B->C->D->A *** *** Testing schema A->B->C->D->A ***
...@@ -46,6 +47,7 @@ SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; ...@@ -46,6 +47,7 @@ SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
include/start_slave.inc include/start_slave.inc
INSERT INTO t1 VALUES(6,'C',2); INSERT INTO t1 VALUES(6,'C',2);
INSERT INTO t1(b,c) VALUES('B',2); INSERT INTO t1(b,c) VALUES('B',2);
call mtr.add_suppression("Slave SQL.*Duplicate entry .6. for key .PRIMARY.* Error_code: 1062");
include/wait_for_slave_sql_error.inc [errno=1062] include/wait_for_slave_sql_error.inc [errno=1062]
INSERT INTO t1(b,c) VALUES('A',2); INSERT INTO t1(b,c) VALUES('A',2);
INSERT INTO t1(b,c) VALUES('D',2); INSERT INTO t1(b,c) VALUES('D',2);
......
...@@ -57,6 +57,11 @@ f1 f2 f3 f4 f5 f6 f7 f8 f9 hex(f10) hex(f11) ...@@ -57,6 +57,11 @@ f1 f2 f3 f4 f5 f6 f7 f8 f9 hex(f10) hex(f11)
27 27 27 next 2 kaks 2 got stolen from the paradise very fat blob 1555 123456 27 27 27 next 2 kaks 2 got stolen from the paradise very fat blob 1555 123456
29 29 29 second 2 kaks 2 got stolen from the paradise very fat blob 1555 123456 29 29 29 second 2 kaks 2 got stolen from the paradise very fat blob 1555 123456
30 30 30 next 2 kaks 2 got stolen from the paradise very fat blob 1555 123456 30 30 30 next 2 kaks 2 got stolen from the paradise very fat blob 1555 123456
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 2 type mismatch.* 1535");
call mtr.add_suppression("Slave SQL.*Error .Can.t DROP .c7.; check that column.key exists. on query.* 1091");
call mtr.add_suppression("Slave SQL.*Error .Unknown column .c7. in .t15.. on query.* 1054");
call mtr.add_suppression("Slave SQL.*Error .Key column .c6. doesn.t exist in table. on query.* 1072");
call mtr.add_suppression("Slave SQL.*Column 2 of table .test.t1.. cannot be converted from type.* Error_code: 1677");
* Select count and 20 rows from Slave * * Select count and 20 rows from Slave *
......
...@@ -57,6 +57,11 @@ f1 f2 f3 f4 f5 f6 f7 f8 f9 hex(f10) hex(f11) ...@@ -57,6 +57,11 @@ f1 f2 f3 f4 f5 f6 f7 f8 f9 hex(f10) hex(f11)
27 27 27 next 2 kaks 2 got stolen from the paradise very fat blob 1555 123456 27 27 27 next 2 kaks 2 got stolen from the paradise very fat blob 1555 123456
29 29 29 second 2 kaks 2 got stolen from the paradise very fat blob 1555 123456 29 29 29 second 2 kaks 2 got stolen from the paradise very fat blob 1555 123456
30 30 30 next 2 kaks 2 got stolen from the paradise very fat blob 1555 123456 30 30 30 next 2 kaks 2 got stolen from the paradise very fat blob 1555 123456
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 2 type mismatch.* 1535");
call mtr.add_suppression("Slave SQL.*Error .Can.t DROP .c7.; check that column.key exists. on query.* 1091");
call mtr.add_suppression("Slave SQL.*Error .Unknown column .c7. in .t15.. on query.* 1054");
call mtr.add_suppression("Slave SQL.*Error .Key column .c6. doesn.t exist in table. on query.* 1072");
call mtr.add_suppression("Slave SQL.*Column 2 of table .test.t1.. cannot be converted from type.* Error_code: 1677");
* Select count and 20 rows from Slave * * Select count and 20 rows from Slave *
......
include/master-slave.inc include/master-slave.inc
[connection master] [connection master]
call mtr.add_suppression("Slave: Unknown table 't6' Error_code: 1051"); call mtr.add_suppression("Slave: Unknown table 't6' Error_code: 1051");
call mtr.add_suppression("Slave SQL.*Column [0-9] of table .test.t[0-9]*. cannot be converted from type.* Error_code: 1677");
**** Diff Table Def Start **** **** Diff Table Def Start ****
*** On Slave *** *** On Slave ***
STOP SLAVE; STOP SLAVE;
...@@ -461,6 +462,9 @@ c4 BLOB, c5 CHAR(5)) ENGINE='InnoDB'; ...@@ -461,6 +462,9 @@ c4 BLOB, c5 CHAR(5)) ENGINE='InnoDB';
RESET MASTER; RESET MASTER;
*** Start Slave *** *** Start Slave ***
START SLAVE; START SLAVE;
call mtr.add_suppression("Error .Unknown table .t6.. on query.* Error_code: 1051");
call mtr.add_suppression("Error .Duplicate column name .c6.. on query.* Error_code: 1060");
call mtr.add_suppression("Table definition on master and slave does not match: Column . ...e mismatch.* Error_code: 1535");
*** Master Data Insert *** *** Master Data Insert ***
set @b1 = 'b1b1b1b1'; set @b1 = 'b1b1b1b1';
set @b1 = concat(@b1,@b1); set @b1 = concat(@b1,@b1);
......
include/master-slave.inc include/master-slave.inc
[connection master] [connection master]
call mtr.add_suppression("Slave: Unknown table 't6' Error_code: 1051"); call mtr.add_suppression("Slave: Unknown table 't6' Error_code: 1051");
call mtr.add_suppression("Slave SQL.*Column [0-9] of table .test.t[0-9]*. cannot be converted from type.* Error_code: 1677");
**** Diff Table Def Start **** **** Diff Table Def Start ****
*** On Slave *** *** On Slave ***
STOP SLAVE; STOP SLAVE;
...@@ -461,6 +462,9 @@ c4 BLOB, c5 CHAR(5)) ENGINE='MyISAM'; ...@@ -461,6 +462,9 @@ c4 BLOB, c5 CHAR(5)) ENGINE='MyISAM';
RESET MASTER; RESET MASTER;
*** Start Slave *** *** Start Slave ***
START SLAVE; START SLAVE;
call mtr.add_suppression("Error .Unknown table .t6.. on query.* Error_code: 1051");
call mtr.add_suppression("Error .Duplicate column name .c6.. on query.* Error_code: 1060");
call mtr.add_suppression("Table definition on master and slave does not match: Column . ...e mismatch.* Error_code: 1535");
*** Master Data Insert *** *** Master Data Insert ***
set @b1 = 'b1b1b1b1'; set @b1 = 'b1b1b1b1';
set @b1 = concat(@b1,@b1); set @b1 = concat(@b1,@b1);
......
...@@ -42,6 +42,7 @@ UPDATE t4 LEFT JOIN (t1, t2, t5) ON (t1.id=t4.id and t2.id=t4.id and t5.id=t4.id ...@@ -42,6 +42,7 @@ UPDATE t4 LEFT JOIN (t1, t2, t5) ON (t1.id=t4.id and t2.id=t4.id and t5.id=t4.id
UPDATE t4 LEFT JOIN (t1, t6, t7) ON (t4.id=t1.id and t4.id=t6.id and t4.id=t7.id) SET a=0, d=0, f=0, g=0 where t4.id=1; UPDATE t4 LEFT JOIN (t1, t6, t7) ON (t4.id=t1.id and t4.id=t6.id and t4.id=t7.id) SET a=0, d=0, f=0, g=0 where t4.id=1;
UPDATE t7 LEFT JOIN (t4, t1, t2) ON (t7.id=t4.id and t7.id=t1.id and t7.id=t2.id) SET a=0, b=0, d=0, g=0 where t7.id=1; UPDATE t7 LEFT JOIN (t4, t1, t2) ON (t7.id=t4.id and t7.id=t1.id and t7.id=t2.id) SET a=0, b=0, d=0, g=0 where t7.id=1;
UPDATE t7 LEFT JOIN (t8, t4, t1) ON (t7.id=t8.id and t7.id=t4.id and t7.id=t1.id) SET a=0, d=0, g=0, h=0 where t7.id=1; UPDATE t7 LEFT JOIN (t8, t4, t1) ON (t7.id=t8.id and t7.id=t4.id and t7.id=t1.id) SET a=0, d=0, g=0, h=0 where t7.id=1;
call mtr.add_suppression("Slave SQL.*Error .Table .test.t[47]. doesn.t exist. on query.* Error_code: 1146");
UPDATE t1 LEFT JOIN t4 ON (t1.id=t4.id) SET a=0 where t1.id=1; UPDATE t1 LEFT JOIN t4 ON (t1.id=t4.id) SET a=0 where t1.id=1;
include/wait_for_slave_sql_error_and_skip.inc [errno=1146] include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
Last_SQL_Error = 'Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN t4 ON (t1.id=t4.id) SET a=0 where t1.id=1'' Last_SQL_Error = 'Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN t4 ON (t1.id=t4.id) SET a=0 where t1.id=1''
......
...@@ -206,6 +206,8 @@ Heartbeat event received ...@@ -206,6 +206,8 @@ Heartbeat event received
CREATE TABLE t1 (a INT PRIMARY KEY, b VARCHAR(10), c LONGTEXT); CREATE TABLE t1 (a INT PRIMARY KEY, b VARCHAR(10), c LONGTEXT);
INSERT INTO t1 VALUES (1, 'on slave', NULL); INSERT INTO t1 VALUES (1, 'on slave', NULL);
INSERT INTO t1 VALUES (1, 'on master', NULL); INSERT INTO t1 VALUES (1, 'on master', NULL);
call mtr.add_suppression("Slave SQL.*Duplicate entry .1. for key .PRIMARY.. on query.* Error_code: 1062");
call mtr.add_suppression("Slave SQL.*slave SQL thread is being stopped in the middle of applying of a group having updated a non-transaction table");
Heartbeat events are received while sql thread stopped (1 means 'yes'): 1 Heartbeat events are received while sql thread stopped (1 means 'yes'): 1
include/stop_slave.inc include/stop_slave.inc
DROP TABLE t1; DROP TABLE t1;
......
include/master-slave.inc include/master-slave.inc
[connection master] [connection master]
call mtr.add_suppression("Slave: Can't find record in 't.' Error_code: 1032"); call mtr.add_suppression("Slave SQL.*Can.t find record in .t[12].* Error_code: 1032");
call mtr.add_suppression("Slave: Cannot delete or update a parent row: a foreign key constraint fails .* Error_code: 1451"); call mtr.add_suppression("Slave SQL.*Cannot delete or update a parent row: a foreign key constraint fails .* Error_code: 1451");
call mtr.add_suppression("Slave: Cannot add or update a child row: a foreign key constraint fails .* Error_code: 1452"); call mtr.add_suppression("Slave SQL.*Cannot add or update a child row: a foreign key constraint fails .* Error_code: 1452");
call mtr.add_suppression("Slave SQL.*Could not execute Write_rows event on table test.* Duplicate entry .1. for key .PRIMARY.* Error_code: 1062");
CREATE TABLE t1 (a INT PRIMARY KEY); CREATE TABLE t1 (a INT PRIMARY KEY);
CREATE TABLE t2 (a INT); CREATE TABLE t2 (a INT);
INSERT INTO t1 VALUES (-1),(-2),(-3); INSERT INTO t1 VALUES (-1),(-2),(-3);
......
...@@ -113,6 +113,7 @@ show grants for mysqltest4@localhost; ...@@ -113,6 +113,7 @@ show grants for mysqltest4@localhost;
Grants for mysqltest4@localhost Grants for mysqltest4@localhost
GRANT USAGE ON *.* TO 'mysqltest4'@'localhost' IDENTIFIED BY PASSWORD '*196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7' GRANT USAGE ON *.* TO 'mysqltest4'@'localhost' IDENTIFIED BY PASSWORD '*196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7'
set global slave_exec_mode='IDEMPOTENT'; set global slave_exec_mode='IDEMPOTENT';
call mtr.add_suppression("Slave SQL.*Could not execute Delete_rows event on table mysql.* Error_code: 1032");
drop table t1, mysqltest2.t2; drop table t1, mysqltest2.t2;
drop table t4; drop table t4;
drop database mysqltest2; drop database mysqltest2;
......
...@@ -15,6 +15,7 @@ a ...@@ -15,6 +15,7 @@ a
2 2
3 3
4 4
call mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occured on the master.* 1590");
include/wait_for_slave_sql_error.inc [errno=1590] include/wait_for_slave_sql_error.inc [errno=1590]
Last_SQL_Error = 'The incident LOST_EVENTS occured on the master. Message: <none>' Last_SQL_Error = 'The incident LOST_EVENTS occured on the master. Message: <none>'
**** On Slave **** **** On Slave ****
......
...@@ -6,7 +6,7 @@ SET GLOBAL debug= "d,simulate_io_slave_error_on_init,simulate_sql_slave_error_on ...@@ -6,7 +6,7 @@ SET GLOBAL debug= "d,simulate_io_slave_error_on_init,simulate_sql_slave_error_on
start slave; start slave;
include/wait_for_slave_sql_error.inc [errno=1593] include/wait_for_slave_sql_error.inc [errno=1593]
Last_SQL_Error = 'Failed during slave thread initialization' Last_SQL_Error = 'Failed during slave thread initialization'
call mtr.add_suppression("Failed during slave I/O thread initialization"); call mtr.add_suppression("Failed during slave.* thread initialization");
SET GLOBAL debug= ""; SET GLOBAL debug= "";
reset slave; reset slave;
SET GLOBAL init_slave= "garbage"; SET GLOBAL init_slave= "garbage";
......
...@@ -7,6 +7,7 @@ SELECT * FROM t1; ...@@ -7,6 +7,7 @@ SELECT * FROM t1;
a b a b
1 10 1 10
2 2 2 2
call mtr.add_suppression("Slave SQL.*suffer.*http:..bugs.mysql.com.bug.php.id=24432");
include/wait_for_slave_sql_error.inc [errno=1105] include/wait_for_slave_sql_error.inc [errno=1105]
Last_SQL_Error = 'Error 'master may suffer from http://bugs.mysql.com/bug.php?id=24432 so slave stops; check error log on slave for more info' on query. Default database: 'test'. Query: 'INSERT INTO t1(b) VALUES(1),(1),(2) ON DUPLICATE KEY UPDATE t1.b=10'' Last_SQL_Error = 'Error 'master may suffer from http://bugs.mysql.com/bug.php?id=24432 so slave stops; check error log on slave for more info' on query. Default database: 'test'. Query: 'INSERT INTO t1(b) VALUES(1),(1),(2) ON DUPLICATE KEY UPDATE t1.b=10''
SELECT * FROM t1; SELECT * FROM t1;
......
...@@ -27,6 +27,8 @@ drop table t3; ...@@ -27,6 +27,8 @@ drop table t3;
create table t1(a int, b int, unique(b)); create table t1(a int, b int, unique(b));
insert into t1 values(1,10); insert into t1 values(1,10);
load data infile '../../std_data/rpl_loaddata.dat' into table t1; load data infile '../../std_data/rpl_loaddata.dat' into table t1;
call mtr.add_suppression("Slave SQL.*Error .Duplicate entry .10. for key .b.. on query.* Error_code: 1062");
call mtr.add_suppression("Slave SQL.*Query caused different errors on master and slave.*Error on master:.*error code=1062.*Error on slave:.*Error_code: 0");
include/wait_for_slave_sql_error_and_skip.inc [errno=1062] include/wait_for_slave_sql_error_and_skip.inc [errno=1062]
include/check_slave_no_error.inc include/check_slave_no_error.inc
set sql_log_bin=0; set sql_log_bin=0;
......
...@@ -3,6 +3,7 @@ include/master-slave.inc ...@@ -3,6 +3,7 @@ include/master-slave.inc
CREATE TABLE t1 (a INT, b INT); CREATE TABLE t1 (a INT, b INT);
INSERT INTO t1 VALUES (1,10); INSERT INTO t1 VALUES (1,10);
LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE t1; LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE t1;
call mtr.add_suppression("Slave SQL.*Fatal error: Not enough memory, Error_code: 1593");
include/wait_for_slave_sql_error_and_skip.inc [errno=1593] include/wait_for_slave_sql_error_and_skip.inc [errno=1593]
Last_SQL_Error = 'Fatal error: Not enough memory' Last_SQL_Error = 'Fatal error: Not enough memory'
DROP TABLE t1; DROP TABLE t1;
......
...@@ -131,6 +131,7 @@ include/start_slave.inc ...@@ -131,6 +131,7 @@ include/start_slave.inc
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*"); CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*");
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*"); CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*");
CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*"); CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*");
CALL mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occured on the master. Message: error writing to the binary log");
TRUNCATE t1; TRUNCATE t1;
SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE; SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE;
SET GLOBAL binlog_cache_size= ORIGINAL_VALUE; SET GLOBAL binlog_cache_size= ORIGINAL_VALUE;
......
...@@ -37,6 +37,7 @@ drop table temp_table, t3; ...@@ -37,6 +37,7 @@ drop table temp_table, t3;
insert into t2 values(1234); insert into t2 values(1234);
set insert_id=1234; set insert_id=1234;
insert into t2 values(NULL); insert into t2 values(NULL);
call mtr.add_suppression("Slave SQL.*Error .Duplicate entry .1234. for key .PRIMARY.. on query.* Error_code: 1062");
include/wait_for_slave_sql_error_and_skip.inc [errno=1062] include/wait_for_slave_sql_error_and_skip.inc [errno=1062]
purge master logs to 'master-bin.000002'; purge master logs to 'master-bin.000002';
show master logs; show master logs;
......
...@@ -65,6 +65,7 @@ DROP TABLE t1; ...@@ -65,6 +65,7 @@ DROP TABLE t1;
include/rpl_reset.inc include/rpl_reset.inc
**** On Slave **** **** On Slave ****
SET GLOBAL QUERY_CACHE_SIZE=0; SET GLOBAL QUERY_CACHE_SIZE=0;
call mtr.add_suppression("Slave SQL.*Could not execute Update_rows event on table test.t1.* Error_code: 1032");
**** On Master **** **** On Master ****
CREATE TABLE t1 (a INT); CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1),(2),(3); INSERT INTO t1 VALUES (1),(2),(3);
......
...@@ -478,6 +478,9 @@ INSERT INTO t2 VALUES (1, "", 1); ...@@ -478,6 +478,9 @@ INSERT INTO t2 VALUES (1, "", 1);
INSERT INTO t2 VALUES (2, repeat(_utf8'a', 16), 2); INSERT INTO t2 VALUES (2, repeat(_utf8'a', 16), 2);
include/diff_tables.inc [master:t2, slave:t2] include/diff_tables.inc [master:t2, slave:t2]
SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions; SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions;
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 1 size mismatch.* Error_code: 1535");
call mtr.add_suppression("Slave SQL.*Could not execute Delete_rows event on table test.t1.* Error_code: 1032");
call mtr.add_suppression("Slave SQL.*Column 1 of table .test.t.. cannot be converted from type.*, Error_code: 1677");
include/rpl_reset.inc include/rpl_reset.inc
[expecting slave to replicate correctly] [expecting slave to replicate correctly]
INSERT INTO t4 VALUES (1, "", 1); INSERT INTO t4 VALUES (1, "", 1);
......
...@@ -481,6 +481,9 @@ INSERT INTO t2 VALUES (1, "", 1); ...@@ -481,6 +481,9 @@ INSERT INTO t2 VALUES (1, "", 1);
INSERT INTO t2 VALUES (2, repeat(_utf8'a', 16), 2); INSERT INTO t2 VALUES (2, repeat(_utf8'a', 16), 2);
include/diff_tables.inc [master:t2, slave:t2] include/diff_tables.inc [master:t2, slave:t2]
SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions; SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions;
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 1 size mismatch.* Error_code: 1535");
call mtr.add_suppression("Slave SQL.*Could not execute Delete_rows event on table test.t1.* Error_code: 1032");
call mtr.add_suppression("Slave SQL.*Column 1 of table .test.t.. cannot be converted from type.*, Error_code: 1677");
include/rpl_reset.inc include/rpl_reset.inc
[expecting slave to replicate correctly] [expecting slave to replicate correctly]
INSERT INTO t4 VALUES (1, "", 1); INSERT INTO t4 VALUES (1, "", 1);
......
...@@ -132,6 +132,7 @@ include/start_slave.inc ...@@ -132,6 +132,7 @@ include/start_slave.inc
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*"); CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*");
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*"); CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*");
CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*"); CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*");
CALL mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occured on the master. Message: error writing to the binary log");
TRUNCATE t1; TRUNCATE t1;
SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE; SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE;
SET GLOBAL binlog_cache_size= ORIGINAL_VALUE; SET GLOBAL binlog_cache_size= ORIGINAL_VALUE;
......
...@@ -265,6 +265,8 @@ STOP SLAVE; ...@@ -265,6 +265,8 @@ STOP SLAVE;
RESET SLAVE; RESET SLAVE;
RESET MASTER; RESET MASTER;
START SLAVE; START SLAVE;
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 0 ...e mismatch.* Error_code: 1535");
call mtr.add_suppression("Slave SQL.*Column 0 of table .test.t1. cannot be converted from type.* Error_code: 1677");
*** Cleanup *** *** Cleanup ***
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
include/rpl_end.inc include/rpl_end.inc
...@@ -23,6 +23,7 @@ a ...@@ -23,6 +23,7 @@ a
include/wait_for_slave_sql_error.inc [errno=1062] include/wait_for_slave_sql_error.inc [errno=1062]
Last_SQL_Error (expected "duplicate key" error) Last_SQL_Error (expected "duplicate key" error)
Could not execute Write_rows event on table test.t1; Duplicate entry '1' for key 'PRIMARY', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's master log master-bin.000001, end_log_pos END_LOG_POS Could not execute Write_rows event on table test.t1; Duplicate entry '1' for key 'PRIMARY', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's master log master-bin.000001, end_log_pos END_LOG_POS
call mtr.add_suppression("Slave SQL.*Duplicate entry .1. for key .PRIMARY.* Error_code: 1062");
SELECT * FROM t1; SELECT * FROM t1;
a a
1 1
...@@ -49,6 +50,7 @@ SELECT * FROM t1; ...@@ -49,6 +50,7 @@ SELECT * FROM t1;
a a
[on slave] [on slave]
---- Wait until slave stops with an error ---- ---- Wait until slave stops with an error ----
call mtr.add_suppression("Slave SQL.*Can.t find record in .t1., Error_code: 1032");
include/wait_for_slave_sql_error.inc [errno=1032] include/wait_for_slave_sql_error.inc [errno=1032]
Last_SQL_Error (expected "duplicate key" error) Last_SQL_Error (expected "duplicate key" error)
Could not execute Delete_rows event on table test.t1; Can't find record in 't1', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log master-bin.000001, end_log_pos END_LOG_POS Could not execute Delete_rows event on table test.t1; Can't find record in 't1', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log master-bin.000001, end_log_pos END_LOG_POS
......
include/master-slave.inc include/master-slave.inc
[connection master] [connection master]
call mtr.add_suppression("Slave: Can't find record in 't.' Error_code: 1032"); call mtr.add_suppression("Can.t find record in .t[12].* Error_code: 1032");
call mtr.add_suppression("Slave: Cannot delete or update a parent row: a foreign key constraint fails .* Error_code: 1451"); call mtr.add_suppression("Cannot delete or update a parent row: a foreign key constraint fails .* Error_code: 1451");
call mtr.add_suppression("Slave: Cannot add or update a child row: a foreign key constraint fails .* Error_code: 1452"); call mtr.add_suppression("Cannot add or update a child row: a foreign key constraint fails .* Error_code: 1452");
call mtr.add_suppression("Duplicate entry .1. for key .PRIMARY.* Error_code: 1062");
set @old_slave_exec_mode= @@global.slave_exec_mode; set @old_slave_exec_mode= @@global.slave_exec_mode;
set @@global.slave_exec_mode= IDEMPOTENT; set @@global.slave_exec_mode= IDEMPOTENT;
create table ti1 (b int primary key) engine = innodb; create table ti1 (b int primary key) engine = innodb;
......
...@@ -10,6 +10,7 @@ DROP TABLE t1; ...@@ -10,6 +10,7 @@ DROP TABLE t1;
INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (1);
==== Verify error on slave ==== ==== Verify error on slave ====
[on slave] [on slave]
call mtr.add_suppression("Slave SQL.*Error executing row event: .Table .test.t1. doesn.t exist., Error_code: 1146");
include/wait_for_slave_sql_error.inc [errno=1146] include/wait_for_slave_sql_error.inc [errno=1146]
==== Clean up ==== ==== Clean up ====
include/stop_slave_io.inc include/stop_slave_io.inc
......
...@@ -117,6 +117,8 @@ a ...@@ -117,6 +117,8 @@ a
include/check_slave_is_running.inc include/check_slave_is_running.inc
INSERT INTO t9 VALUES (4); INSERT INTO t9 VALUES (4);
INSERT INTO t4 VALUES (4); INSERT INTO t4 VALUES (4);
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column [012] type mismatch.* Error_code: 1535");
call mtr.add_suppression("Slave SQL.*Column [0-9] of table .test.t[0-9]. cannot be converted from type.* Error_code: 1677");
include/wait_for_slave_sql_error_and_skip.inc [errno=1677] include/wait_for_slave_sql_error_and_skip.inc [errno=1677]
Last_SQL_Error = 'Column 0 of table 'test.t4' cannot be converted from type 'int' to type 'float'' Last_SQL_Error = 'Column 0 of table 'test.t4' cannot be converted from type 'int' to type 'float''
INSERT INTO t9 VALUES (5); INSERT INTO t9 VALUES (5);
......
...@@ -117,6 +117,8 @@ a ...@@ -117,6 +117,8 @@ a
include/check_slave_is_running.inc include/check_slave_is_running.inc
INSERT INTO t9 VALUES (4); INSERT INTO t9 VALUES (4);
INSERT INTO t4 VALUES (4); INSERT INTO t4 VALUES (4);
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column [012] type mismatch.* Error_code: 1535");
call mtr.add_suppression("Slave SQL.*Column [0-9] of table .test.t[0-9]. cannot be converted from type.* Error_code: 1677");
include/wait_for_slave_sql_error_and_skip.inc [errno=1677] include/wait_for_slave_sql_error_and_skip.inc [errno=1677]
Last_SQL_Error = 'Column 0 of table 'test.t4' cannot be converted from type 'int' to type 'float'' Last_SQL_Error = 'Column 0 of table 'test.t4' cannot be converted from type 'int' to type 'float''
INSERT INTO t9 VALUES (5); INSERT INTO t9 VALUES (5);
......
...@@ -56,6 +56,7 @@ t1 CREATE TABLE `t1` ( ...@@ -56,6 +56,7 @@ t1 CREATE TABLE `t1` (
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ) ENGINE=InnoDB DEFAULT CHARSET=latin1
SET SQL_LOG_BIN=1; SET SQL_LOG_BIN=1;
call mtr.add_suppression("Slave SQL.*Could not execute .*te_rows event on table test.t.; Duplicate entry.* Error_code: 1062");
CREATE TABLE t1(id INT NOT NULL PRIMARY KEY, data INT) Engine=InnoDB; CREATE TABLE t1(id INT NOT NULL PRIMARY KEY, data INT) Engine=InnoDB;
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
Table Create Table Table Create Table
......
...@@ -29,6 +29,7 @@ a b ...@@ -29,6 +29,7 @@ a b
SELECT * FROM t3 ORDER BY a; SELECT * FROM t3 ORDER BY a;
a b a b
1 ZZ 1 ZZ
call mtr.add_suppression("Slave SQL.*Table .test.t3. doesn.t exist.* Error_code: 1146");
include/wait_for_slave_sql_error.inc [errno=1146] include/wait_for_slave_sql_error.inc [errno=1146]
SHOW TABLES LIKE 't%'; SHOW TABLES LIKE 't%';
Tables_in_test (t%) Tables_in_test (t%)
......
...@@ -13,5 +13,6 @@ include/stop_slave_io.inc ...@@ -13,5 +13,6 @@ include/stop_slave_io.inc
RESET SLAVE; RESET SLAVE;
drop table t1; drop table t1;
call mtr.add_suppression("Slave: Can't get stat of .*"); call mtr.add_suppression("Slave: Can't get stat of .*");
call mtr.add_suppression("Slave SQL: Error .Can.t get stat of.* Error_code: 13");
call mtr.add_suppression("Slave: File.* not found.*"); call mtr.add_suppression("Slave: File.* not found.*");
include/rpl_end.inc include/rpl_end.inc
include/master-slave.inc include/master-slave.inc
[connection master] [connection master]
START SLAVE; START SLAVE;
call mtr.add_suppression("Slave SQL.*Unable to use slave.s temporary directory.* Error_code: 12");
include/wait_for_slave_sql_error.inc [errno=12] include/wait_for_slave_sql_error.inc [errno=12]
include/stop_slave_io.inc include/stop_slave_io.inc
RESET SLAVE; RESET SLAVE;
......
include/master-slave.inc include/master-slave.inc
[connection master] [connection master]
CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
call mtr.add_suppression("Slave SQL: slave SQL thread is being stopped in the middle of applying of a group having updated a non-transaction table; waiting for the group completion");
include/stop_slave.inc include/stop_slave.inc
SET @old_log_output= @@log_output; SET @old_log_output= @@log_output;
SET GLOBAL log_output= 'TABLE'; SET GLOBAL log_output= 'TABLE';
......
...@@ -8,6 +8,7 @@ insert into t1 values(1),(2); ...@@ -8,6 +8,7 @@ insert into t1 values(1),(2);
ERROR 23000: Duplicate entry '2' for key 'a' ERROR 23000: Duplicate entry '2' for key 'a'
drop table t1; drop table t1;
include/wait_for_slave_sql_to_stop.inc include/wait_for_slave_sql_to_stop.inc
call mtr.add_suppression("Slave SQL.*Query caused different errors on master and slave.*Error on master:.* error code=1062.*Error on slave:.* Error_code: 0");
Error: "Query caused different errors on master and slave. Error on master: message (format)='Duplicate entry '%-.192s' for key %d' error code=1062 ; Error on slave: actual message='no error', error code=0. Default database: 'test'. Query: 'insert into t1 values(1),(2)'" (expected different error codes on master and slave) Error: "Query caused different errors on master and slave. Error on master: message (format)='Duplicate entry '%-.192s' for key %d' error code=1062 ; Error on slave: actual message='no error', error code=0. Default database: 'test'. Query: 'insert into t1 values(1),(2)'" (expected different error codes on master and slave)
Errno: "0" (expected 0) Errno: "0" (expected 0)
drop table t1; drop table t1;
......
...@@ -131,6 +131,7 @@ include/start_slave.inc ...@@ -131,6 +131,7 @@ include/start_slave.inc
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*"); CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*");
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*"); CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*");
CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*"); CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*");
CALL mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occured on the master. Message: error writing to the binary log");
TRUNCATE t1; TRUNCATE t1;
SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE; SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE;
SET GLOBAL binlog_cache_size= ORIGINAL_VALUE; SET GLOBAL binlog_cache_size= ORIGINAL_VALUE;
......
...@@ -18,6 +18,7 @@ a ...@@ -18,6 +18,7 @@ a
include/wait_for_slave_sql_error.inc [errno=1062] include/wait_for_slave_sql_error.inc [errno=1062]
Last_SQL_Error (expected "duplicate key" error) Last_SQL_Error (expected "duplicate key" error)
Error 'Duplicate entry '1' for key 'PRIMARY'' on query. Default database: 'test'. Query: 'INSERT INTO t1 VALUES (1)' Error 'Duplicate entry '1' for key 'PRIMARY'' on query. Default database: 'test'. Query: 'INSERT INTO t1 VALUES (1)'
call mtr.add_suppression("Slave SQL.*Duplicate entry .1. for key .PRIMARY.* Error_code: 1062");
SELECT * FROM t1; SELECT * FROM t1;
a a
1 1
......
...@@ -43,6 +43,8 @@ drop table t3; ...@@ -43,6 +43,8 @@ drop table t3;
create table t1(a int, b int, unique(b)); create table t1(a int, b int, unique(b));
insert into t1 values(1,10); insert into t1 values(1,10);
load data CONCURRENT infile '../../std_data/rpl_loaddata.dat' into table t1; load data CONCURRENT infile '../../std_data/rpl_loaddata.dat' into table t1;
call mtr.add_suppression("Slave SQL.*Error .Duplicate entry .10. for key .b.. on query.* Error_code: 1062");
call mtr.add_suppression("Slave SQL.*Query caused different errors on master and slave.*Error on master:.*error code=1062.*Error on slave:.*Error_code: 0");
include/wait_for_slave_sql_error_and_skip.inc [errno=1062] include/wait_for_slave_sql_error_and_skip.inc [errno=1062]
include/check_slave_no_error.inc include/check_slave_no_error.inc
set sql_log_bin=0; set sql_log_bin=0;
......
...@@ -70,5 +70,6 @@ include/start_slave.inc ...@@ -70,5 +70,6 @@ include/start_slave.inc
# Clean up # Clean up
DROP TABLE t1; DROP TABLE t1;
SET @@global.innodb_flush_log_at_trx_commit= @old_innodb_flush_log_at_trx_commit; SET @@global.innodb_flush_log_at_trx_commit= @old_innodb_flush_log_at_trx_commit;
call mtr.add_suppression("Slave SQL.*slave SQL thread is being stopped in the middle of applying of a group having updated a non-transaction table");
SET @@global.innodb_flush_log_at_trx_commit= @old_innodb_flush_log_at_trx_commit; SET @@global.innodb_flush_log_at_trx_commit= @old_innodb_flush_log_at_trx_commit;
include/rpl_end.inc include/rpl_end.inc
...@@ -11,6 +11,8 @@ insert into tm set a=null; ...@@ -11,6 +11,8 @@ insert into tm set a=null;
Warnings: Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it accesses a non-transactional table after accessing a transactional table within the same transaction. Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it accesses a non-transactional table after accessing a transactional table within the same transaction.
commit; commit;
call mtr.add_suppression("Slave SQL.*slave SQL thread is being stopped in the middle of applying of a group having updated a non-transaction table");
call mtr.add_suppression("Slave SQL.*The slave SQL is stopped, leaving the current group of events unfinished with a non-transaction table changed.");
include/wait_for_slave_sql_to_stop.inc include/wait_for_slave_sql_to_stop.inc
SELECT "NO" AS Last_SQL_Error, @check as `true`; SELECT "NO" AS Last_SQL_Error, @check as `true`;
Last_SQL_Error true Last_SQL_Error true
......
...@@ -75,6 +75,7 @@ include/wait_for_slave_sql_to_start.inc ...@@ -75,6 +75,7 @@ include/wait_for_slave_sql_to_start.inc
# Test end # Test end
SET GLOBAL debug= '$debug_save'; SET GLOBAL debug= '$debug_save';
include/restart_slave.inc include/restart_slave.inc
call mtr.add_suppression("Slave SQL.*slave SQL thread is being stopped in the middle of applying of a group having updated a non-transaction table");
[connection master] [connection master]
DROP TABLE t1, t2; DROP TABLE t1, t2;
......
...@@ -36,6 +36,7 @@ a b ...@@ -36,6 +36,7 @@ a b
3 3 3 3
4 4 4 4
include/check_slave_is_running.inc include/check_slave_is_running.inc
call mtr.add_suppression("Slave SQL.*Could not execute Update_rows event on table test.t1");
**** On Master **** **** On Master ****
DROP TABLE t1; DROP TABLE t1;
include/rpl_end.inc include/rpl_end.inc
...@@ -534,6 +534,7 @@ BIT(6) BIT(5) ALL_LOSSY,ALL_NON_LOSSY <Correct value> ...@@ -534,6 +534,7 @@ BIT(6) BIT(5) ALL_LOSSY,ALL_NON_LOSSY <Correct value>
BIT(5) BIT(12) ALL_LOSSY,ALL_NON_LOSSY <Correct value> BIT(5) BIT(12) ALL_LOSSY,ALL_NON_LOSSY <Correct value>
BIT(12) BIT(5) ALL_LOSSY,ALL_NON_LOSSY <Correct value> BIT(12) BIT(5) ALL_LOSSY,ALL_NON_LOSSY <Correct value>
DROP TABLE type_conversions; DROP TABLE type_conversions;
call mtr.add_suppression("Slave SQL.*Column 0 of table .test.t1. cannot be converted from type.* Error_code: 1677");
DROP TABLE t1; DROP TABLE t1;
set global slave_type_conversions = @saved_slave_type_conversions; set global slave_type_conversions = @saved_slave_type_conversions;
include/rpl_end.inc include/rpl_end.inc
...@@ -22,7 +22,7 @@ source include/have_debug.inc; ...@@ -22,7 +22,7 @@ source include/have_debug.inc;
--connection slave --connection slave
call mtr.add_suppression('Found invalid event in binary log'); call mtr.add_suppression('Found invalid event in binary log');
call mtr.add_suppression('Slave SQL.*Relay log read failure: Could not parse relay log event entry.* 1594');
# #
# BUG#40482: server/mysqlbinlog crashes when reading invalid Incident_log_event # BUG#40482: server/mysqlbinlog crashes when reading invalid Incident_log_event
......
...@@ -9,6 +9,7 @@ connection slave; ...@@ -9,6 +9,7 @@ connection slave;
# Add suppression for expected warnings in slaves error log # Add suppression for expected warnings in slaves error log
call mtr.add_suppression("Failed during slave I/O thread initialization"); call mtr.add_suppression("Failed during slave I/O thread initialization");
call mtr.add_suppression("Slave SQL.*Failed during slave thread initialization.* 1593");
--source include/stop_slave.inc --source include/stop_slave.inc
reset slave; reset slave;
......
...@@ -30,6 +30,7 @@ CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL, ...@@ -30,6 +30,7 @@ CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL,
CREATE TABLE t2 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL, PRIMARY KEY(a)) ENGINE=InnoDB; CREATE TABLE t2 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL, PRIMARY KEY(a)) ENGINE=InnoDB;
--source include/rpl_sync.inc --source include/rpl_sync.inc
--connection server_4 --connection server_4
call mtr.add_suppression("Slave SQL.*slave SQL thread is being stopped in the middle of applying of a group having updated a non-transaction table");
--echo --echo
# #
...@@ -85,6 +86,7 @@ INSERT INTO t1(b,c) VALUES('B',2); ...@@ -85,6 +86,7 @@ INSERT INTO t1(b,c) VALUES('B',2);
# Wait while C will stop. # Wait while C will stop.
--connection server_3 --connection server_3
# 1062 = ER_DUP_ENTRY # 1062 = ER_DUP_ENTRY
call mtr.add_suppression("Slave SQL.*Duplicate entry .6. for key .PRIMARY.* Error_code: 1062");
--let $slave_sql_errno= 1062 --let $slave_sql_errno= 1062
--source include/wait_for_slave_sql_error.inc --source include/wait_for_slave_sql_error.inc
--connection server_1 --connection server_1
......
...@@ -122,6 +122,8 @@ UPDATE t7 LEFT JOIN (t8, t4, t1) ON (t7.id=t8.id and t7.id=t4.id and t7.id=t1.id ...@@ -122,6 +122,8 @@ UPDATE t7 LEFT JOIN (t8, t4, t1) ON (t7.id=t8.id and t7.id=t4.id and t7.id=t1.id
# if any of the above statement are not ignored, it would cause error # if any of the above statement are not ignored, it would cause error
# and stop slave sql thread. # and stop slave sql thread.
sync_slave_with_master; sync_slave_with_master;
connection slave;
call mtr.add_suppression("Slave SQL.*Error .Table .test.t[47]. doesn.t exist. on query.* Error_code: 1146");
connection master; connection master;
# Parameters for include/wait_for_slave_sql_error_and_skip.inc: # Parameters for include/wait_for_slave_sql_error_and_skip.inc:
......
...@@ -319,6 +319,8 @@ INSERT INTO t1 VALUES (1, 'on slave', NULL); ...@@ -319,6 +319,8 @@ INSERT INTO t1 VALUES (1, 'on slave', NULL);
--connection master --connection master
INSERT INTO t1 VALUES (1, 'on master', NULL); INSERT INTO t1 VALUES (1, 'on master', NULL);
--connection slave --connection slave
call mtr.add_suppression("Slave SQL.*Duplicate entry .1. for key .PRIMARY.. on query.* Error_code: 1062");
call mtr.add_suppression("Slave SQL.*slave SQL thread is being stopped in the middle of applying of a group having updated a non-transaction table");
let $slave_errno= ER_DUP_ENTRY let $slave_errno= ER_DUP_ENTRY
--source include/wait_for_slave_sql_error.inc --source include/wait_for_slave_sql_error.inc
let $rcvd_heartbeats_before= query_get_value(SHOW STATUS LIKE 'slave_received_heartbeats', Value, 1); let $rcvd_heartbeats_before= query_get_value(SHOW STATUS LIKE 'slave_received_heartbeats', Value, 1);
......
...@@ -4,9 +4,10 @@ ...@@ -4,9 +4,10 @@
source include/master-slave.inc; source include/master-slave.inc;
# Add suppression for expected warning(s) in slaves error log # Add suppression for expected warning(s) in slaves error log
call mtr.add_suppression("Slave: Can't find record in 't.' Error_code: 1032"); call mtr.add_suppression("Slave SQL.*Can.t find record in .t[12].* Error_code: 1032");
call mtr.add_suppression("Slave: Cannot delete or update a parent row: a foreign key constraint fails .* Error_code: 1451"); call mtr.add_suppression("Slave SQL.*Cannot delete or update a parent row: a foreign key constraint fails .* Error_code: 1451");
call mtr.add_suppression("Slave: Cannot add or update a child row: a foreign key constraint fails .* Error_code: 1452"); call mtr.add_suppression("Slave SQL.*Cannot add or update a child row: a foreign key constraint fails .* Error_code: 1452");
call mtr.add_suppression("Slave SQL.*Could not execute Write_rows event on table test.* Duplicate entry .1. for key .PRIMARY.* Error_code: 1062");
connection master; connection master;
CREATE TABLE t1 (a INT PRIMARY KEY); CREATE TABLE t1 (a INT PRIMARY KEY);
......
...@@ -125,6 +125,7 @@ show grants for mysqltest4@localhost; ...@@ -125,6 +125,7 @@ show grants for mysqltest4@localhost;
# where mysqltest1 does not exist on slave, # where mysqltest1 does not exist on slave,
# to succeed on slave the mode is temporarily changed # to succeed on slave the mode is temporarily changed
set global slave_exec_mode='IDEMPOTENT'; set global slave_exec_mode='IDEMPOTENT';
call mtr.add_suppression("Slave SQL.*Could not execute Delete_rows event on table mysql.* Error_code: 1032");
connection master; connection master;
drop table t1, mysqltest2.t2; drop table t1, mysqltest2.t2;
......
...@@ -15,6 +15,7 @@ SELECT * FROM t1; ...@@ -15,6 +15,7 @@ SELECT * FROM t1;
connection slave; connection slave;
# Wait until SQL thread stops with error LOST_EVENT on master # Wait until SQL thread stops with error LOST_EVENT on master
call mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occured on the master.* 1590");
let $slave_sql_errno= 1590; let $slave_sql_errno= 1590;
let $show_slave_sql_error= 1; let $show_slave_sql_error= 1;
source include/wait_for_slave_sql_error.inc; source include/wait_for_slave_sql_error.inc;
......
...@@ -58,7 +58,7 @@ start slave; ...@@ -58,7 +58,7 @@ start slave;
--let $show_slave_sql_error= 1 --let $show_slave_sql_error= 1
--source include/wait_for_slave_sql_error.inc --source include/wait_for_slave_sql_error.inc
call mtr.add_suppression("Failed during slave I/O thread initialization"); call mtr.add_suppression("Failed during slave.* thread initialization");
SET GLOBAL debug= ""; SET GLOBAL debug= "";
......
...@@ -30,6 +30,7 @@ connection slave; ...@@ -30,6 +30,7 @@ connection slave;
#1105 = ER_UNKNOWN_ERROR #1105 = ER_UNKNOWN_ERROR
--let $slave_sql_errno= 1105 --let $slave_sql_errno= 1105
--let $show_slave_sql_error= 1 --let $show_slave_sql_error= 1
call mtr.add_suppression("Slave SQL.*suffer.*http:..bugs.mysql.com.bug.php.id=24432");
--source include/wait_for_slave_sql_error.inc --source include/wait_for_slave_sql_error.inc
# show that it was not replicated # show that it was not replicated
SELECT * FROM t1; SELECT * FROM t1;
......
...@@ -15,6 +15,7 @@ connection master; ...@@ -15,6 +15,7 @@ connection master;
LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE t1; LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE t1;
connection slave; connection slave;
call mtr.add_suppression("Slave SQL.*Fatal error: Not enough memory, Error_code: 1593");
let $slave_sql_errno= 1593; let $slave_sql_errno= 1593;
let $show_slave_sql_error= 1; let $show_slave_sql_error= 1;
source include/wait_for_slave_sql_error_and_skip.inc; source include/wait_for_slave_sql_error_and_skip.inc;
......
...@@ -94,6 +94,7 @@ set insert_id=1234; ...@@ -94,6 +94,7 @@ set insert_id=1234;
insert into t2 values(NULL); insert into t2 values(NULL);
connection slave; connection slave;
# 1062 = ER_DUP_ENTRY # 1062 = ER_DUP_ENTRY
call mtr.add_suppression("Slave SQL.*Error .Duplicate entry .1234. for key .PRIMARY.. on query.* Error_code: 1062");
--let $slave_sql_errno= 1062 --let $slave_sql_errno= 1062
--source include/wait_for_slave_sql_error_and_skip.inc --source include/wait_for_slave_sql_error_and_skip.inc
......
...@@ -63,6 +63,7 @@ DROP TABLE t1; ...@@ -63,6 +63,7 @@ DROP TABLE t1;
--echo **** On Slave **** --echo **** On Slave ****
connection slave; connection slave;
SET GLOBAL QUERY_CACHE_SIZE=0; SET GLOBAL QUERY_CACHE_SIZE=0;
call mtr.add_suppression("Slave SQL.*Could not execute Update_rows event on table test.t1.* Error_code: 1032");
--echo **** On Master **** --echo **** On Master ****
connection master; connection master;
......
...@@ -160,6 +160,10 @@ let $test_table_slave = CREATE TABLE t1 (a TINYBLOB); ...@@ -160,6 +160,10 @@ let $test_table_slave = CREATE TABLE t1 (a TINYBLOB);
let $test_insert = INSERT INTO t1 VALUES ('This is a test.'); let $test_insert = INSERT INTO t1 VALUES ('This is a test.');
source include/test_fieldsize.inc; source include/test_fieldsize.inc;
connection slave;
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 0 ...e mismatch.* Error_code: 1535");
call mtr.add_suppression("Slave SQL.*Column 0 of table .test.t1. cannot be converted from type.* Error_code: 1677");
--echo *** Cleanup *** --echo *** Cleanup ***
connection master; connection master;
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
......
...@@ -9,10 +9,10 @@ connection slave; ...@@ -9,10 +9,10 @@ connection slave;
source include/have_innodb.inc; source include/have_innodb.inc;
# Add suppression for expected warning(s) in slaves error log # Add suppression for expected warning(s) in slaves error log
call mtr.add_suppression("Slave: Can't find record in 't.' Error_code: 1032"); call mtr.add_suppression("Can.t find record in .t[12].* Error_code: 1032");
call mtr.add_suppression("Slave: Cannot delete or update a parent row: a foreign key constraint fails .* Error_code: 1451"); call mtr.add_suppression("Cannot delete or update a parent row: a foreign key constraint fails .* Error_code: 1451");
call mtr.add_suppression("Slave: Cannot add or update a child row: a foreign key constraint fails .* Error_code: 1452"); call mtr.add_suppression("Cannot add or update a child row: a foreign key constraint fails .* Error_code: 1452");
call mtr.add_suppression("Duplicate entry .1. for key .PRIMARY.* Error_code: 1062");
# bug#31609 Not all RBR slave errors reported as errors # bug#31609 Not all RBR slave errors reported as errors
# bug#31552 Replication breaks when deleting rows from out-of-sync table # bug#31552 Replication breaks when deleting rows from out-of-sync table
......
...@@ -30,6 +30,7 @@ INSERT INTO t1 VALUES (1); ...@@ -30,6 +30,7 @@ INSERT INTO t1 VALUES (1);
connection slave; connection slave;
# slave should have stopped because can't find table t1 # slave should have stopped because can't find table t1
# 1146 = ER_NO_SUCH_TABLE # 1146 = ER_NO_SUCH_TABLE
call mtr.add_suppression("Slave SQL.*Error executing row event: .Table .test.t1. doesn.t exist., Error_code: 1146");
--let $slave_sql_errno= 1146 --let $slave_sql_errno= 1146
--source include/wait_for_slave_sql_error.inc --source include/wait_for_slave_sql_error.inc
......
...@@ -102,6 +102,8 @@ SET SQL_LOG_BIN=1; ...@@ -102,6 +102,8 @@ SET SQL_LOG_BIN=1;
connection slave; connection slave;
call mtr.add_suppression("Slave SQL.*Could not execute .*te_rows event on table test.t.; Duplicate entry.* Error_code: 1062");
CREATE TABLE t1(id INT NOT NULL PRIMARY KEY, data INT) Engine=InnoDB; CREATE TABLE t1(id INT NOT NULL PRIMARY KEY, data INT) Engine=InnoDB;
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
......
...@@ -63,6 +63,7 @@ SELECT * FROM t3 ORDER BY a; ...@@ -63,6 +63,7 @@ SELECT * FROM t3 ORDER BY a;
--connection slave --connection slave
# 1146 = ER_NO_SUCH_TABLE # 1146 = ER_NO_SUCH_TABLE
call mtr.add_suppression("Slave SQL.*Table .test.t3. doesn.t exist.* Error_code: 1146");
--let $slave_sql_errno= 1146 --let $slave_sql_errno= 1146
--source include/wait_for_slave_sql_error.inc --source include/wait_for_slave_sql_error.inc
SHOW TABLES LIKE 't%'; SHOW TABLES LIKE 't%';
......
...@@ -60,6 +60,7 @@ RESET SLAVE; ...@@ -60,6 +60,7 @@ RESET SLAVE;
drop table t1; drop table t1;
call mtr.add_suppression("Slave: Can't get stat of .*"); call mtr.add_suppression("Slave: Can't get stat of .*");
call mtr.add_suppression("Slave SQL: Error .Can.t get stat of.* Error_code: 13");
call mtr.add_suppression("Slave: File.* not found.*"); call mtr.add_suppression("Slave: File.* not found.*");
--let $rpl_only_running_threads= 1 --let $rpl_only_running_threads= 1
--source include/rpl_end.inc --source include/rpl_end.inc
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
--connection slave --connection slave
START SLAVE; START SLAVE;
# Why 12??? # Why 12???
call mtr.add_suppression("Slave SQL.*Unable to use slave.s temporary directory.* Error_code: 12");
--let $slave_sql_errno= 12 --let $slave_sql_errno= 12
source include/wait_for_slave_sql_error.inc; source include/wait_for_slave_sql_error.inc;
......
...@@ -29,6 +29,7 @@ source include/master-slave.inc; ...@@ -29,6 +29,7 @@ source include/master-slave.inc;
source include/have_binlog_format_statement.inc; source include/have_binlog_format_statement.inc;
CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
call mtr.add_suppression("Slave SQL: slave SQL thread is being stopped in the middle of applying of a group having updated a non-transaction table; waiting for the group completion");
# Prepare slave for different long_query_time we need to stop the slave # Prepare slave for different long_query_time we need to stop the slave
......
...@@ -19,6 +19,7 @@ SET @@session.binlog_direct_non_transactional_updates= FALSE; ...@@ -19,6 +19,7 @@ SET @@session.binlog_direct_non_transactional_updates= FALSE;
# clean up # clean up
--connection slave --connection slave
SET @@global.innodb_flush_log_at_trx_commit= @old_innodb_flush_log_at_trx_commit; SET @@global.innodb_flush_log_at_trx_commit= @old_innodb_flush_log_at_trx_commit;
call mtr.add_suppression("Slave SQL.*slave SQL thread is being stopped in the middle of applying of a group having updated a non-transaction table");
--connection master --connection master
SET @@global.innodb_flush_log_at_trx_commit= @old_innodb_flush_log_at_trx_commit; SET @@global.innodb_flush_log_at_trx_commit= @old_innodb_flush_log_at_trx_commit;
......
...@@ -47,6 +47,10 @@ source extra/rpl_tests/rpl_stop_slave.test; ...@@ -47,6 +47,10 @@ source extra/rpl_tests/rpl_stop_slave.test;
SET GLOBAL debug= '$debug_save'; SET GLOBAL debug= '$debug_save';
source include/restart_slave_sql.inc; source include/restart_slave_sql.inc;
connection slave;
call mtr.add_suppression("Slave SQL.*slave SQL thread is being stopped in the middle of applying of a group having updated a non-transaction table");
connection master;
--source include/rpl_connection_master.inc --source include/rpl_connection_master.inc
DROP TABLE t1, t2; DROP TABLE t1, t2;
......
...@@ -27,6 +27,9 @@ SHOW STATUS LIKE 'Slave_retried_transactions'; ...@@ -27,6 +27,9 @@ SHOW STATUS LIKE 'Slave_retried_transactions';
SELECT * FROM t1; SELECT * FROM t1;
source include/check_slave_is_running.inc; source include/check_slave_is_running.inc;
connection slave;
call mtr.add_suppression("Slave SQL.*Could not execute Update_rows event on table test.t1");
--echo **** On Master **** --echo **** On Master ****
connection master; connection master;
DROP TABLE t1; DROP TABLE t1;
......
...@@ -61,6 +61,8 @@ SELECT RPAD(Source, 15, ' ') AS Source_Type, ...@@ -61,6 +61,8 @@ SELECT RPAD(Source, 15, ' ') AS Source_Type,
enable_query_log; enable_query_log;
DROP TABLE type_conversions; DROP TABLE type_conversions;
call mtr.add_suppression("Slave SQL.*Column 0 of table .test.t1. cannot be converted from type.* Error_code: 1677");
connection master; connection master;
DROP TABLE t1; DROP TABLE t1;
sync_slave_with_master; sync_slave_with_master;
......
...@@ -557,6 +557,8 @@ let $cleanup_stmt= ; ...@@ -557,6 +557,8 @@ let $cleanup_stmt= ;
--source include/check_ftwrl_compatible.inc --source include/check_ftwrl_compatible.inc
deallocate prepare stmt1; deallocate prepare stmt1;
call mtr.add_suppression("Slave SQL.*Can.t execute the query because you have a conflicting read lock., Error_code: 1223");
--echo # --echo #
--echo # 9.2.b) EXECUTE for statement which is incompatible with FTWRL --echo # 9.2.b) EXECUTE for statement which is incompatible with FTWRL
--echo # should be also incompatible. --echo # should be also incompatible.
......
...@@ -110,8 +110,11 @@ int main(void) ...@@ -110,8 +110,11 @@ int main(void)
test1("Positional arguments octal: <7777>", test1("Positional arguments octal: <7777>",
"Positional arguments octal: <%1$o>", 07777); "Positional arguments octal: <%1$o>", 07777);
/* Can't use int arguments, as they may be different size from pointers */
test1("Padding and %p <0x12> <0x034> <0x0000ab> < 0xcd>", test1("Padding and %p <0x12> <0x034> <0x0000ab> < 0xcd>",
"Padding and %%p <%04p> <%05p> <%08p> <%8p>", 0x12, 0x34, 0xab, 0xcd); "Padding and %%p <%04p> <%05p> <%08p> <%8p>",
(void*) 0x12, (void*) 0x34, (void*) 0xab, (void*) 0xcd);
test1("F with a width (ignored) and precision: <12.34568>", test1("F with a width (ignored) and precision: <12.34568>",
"F with a width (ignored) and precision: <%10.5f>", 12.3456789); "F with a width (ignored) and precision: <%10.5f>", 12.3456789);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment