mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 02:51:44 +01:00
merge 5.1->5.1-security
This commit is contained in:
commit
a9f1e2776d
87 changed files with 417 additions and 29 deletions
|
@ -308,7 +308,7 @@ SSL::SSL(SSL_CTX* ctx)
|
|||
SetError(YasslError(err));
|
||||
return;
|
||||
}
|
||||
else if (serverSide) {
|
||||
else if (serverSide && !(ctx->GetCiphers().setSuites_)) {
|
||||
// remove RSA or DSA suites depending on cert key type
|
||||
ProtocolVersion pv = secure_.get_connection().version_;
|
||||
|
||||
|
|
|
@ -343,6 +343,7 @@ SHOW SESSION VARIABLES LIKE "%_checks";
|
|||
--echo # INSERT INTO t1 VALUES(2)
|
||||
--echo # foreign_key_checks=1 and unique_checks=1
|
||||
--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
|
||||
BINLOG '
|
||||
dfLtTBMBAAAAKQAAAKsBAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE=
|
||||
|
|
|
@ -93,6 +93,7 @@ if (`SELECT @@global.binlog_format != 'ROW' OR @@global.slave_exec_mode = 'STRIC
|
|||
source include/wait_for_slave_sql_error.inc;
|
||||
let $err= query_get_value("SHOW SLAVE STATUS", Last_SQL_Error, 1);
|
||||
--echo Last_SQL_Error = $err (expected "duplicate key" error)
|
||||
call mtr.add_suppression("Slave SQL.*Duplicate entry .1. for key .PRIMARY.* Error_code: 1062");
|
||||
SELECT * FROM t1;
|
||||
|
||||
--echo ---- Resolve the conflict on the slave and restart SQL thread ----
|
||||
|
@ -137,6 +138,7 @@ connection slave;
|
|||
# replication continues.
|
||||
if (`SELECT @@global.binlog_format = 'ROW' AND @@global.slave_exec_mode = 'STRICT'`) {
|
||||
--echo ---- Wait until slave stops with an error ----
|
||||
call mtr.add_suppression("Can.t find record in .t1., Error_code: 1032");
|
||||
let $slave_sql_errno= 1032; # ER_KEY_NOT_FOUND
|
||||
source include/wait_for_slave_sql_error.inc;
|
||||
|
||||
|
|
|
@ -121,6 +121,12 @@ SELECT f1,f2,f3,f4,f5,f6,f7,f8,f9,
|
|||
hex(f10),hex(f11) FROM t1 ORDER BY f3 LIMIT 20;
|
||||
|
||||
#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");
|
||||
|
||||
sync_slave_with_master;
|
||||
--echo
|
||||
--echo * Select count and 20 rows from Slave *
|
||||
|
|
|
@ -766,6 +766,10 @@ RESET MASTER;
|
|||
connection slave;
|
||||
START SLAVE;
|
||||
|
||||
call mtr.add_suppression("Slave SQL.*Error .Unknown table .t6.. on query.* Error_code: 1051");
|
||||
call mtr.add_suppression("Slave SQL.*Error .Duplicate column name .c6.. on query.* Error_code: 1060");
|
||||
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column . ...e mismatch.* Error_code: 1535");
|
||||
|
||||
--echo *** Master Data Insert ***
|
||||
connection master;
|
||||
set @b1 = 'b1b1b1b1';
|
||||
|
|
|
@ -63,6 +63,8 @@ eval $lower_stmt_head infile '../../std_data/rpl_loaddata.dat' into table t1;
|
|||
save_master_pos;
|
||||
connection slave;
|
||||
# 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
|
||||
--source include/wait_for_slave_sql_error_and_skip.inc
|
||||
|
||||
|
|
|
@ -371,7 +371,9 @@ INSERT INTO t3 VALUES (1, "", 1);
|
|||
INSERT INTO t3 VALUES (2, repeat(_utf8'a', 128), 2);
|
||||
|
||||
connection slave;
|
||||
# 1535 = ER_BINLOG_ROW_WRONG_TABLE_DEF
|
||||
# 1535 = ER_BINLOG_ROW_WRONG_TABLE_DEF
|
||||
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");
|
||||
--let $slave_sql_errno= 1535
|
||||
--let $show_slave_sql_error= 1
|
||||
--source include/wait_for_slave_sql_error.inc
|
||||
|
|
|
@ -147,6 +147,7 @@ sync_slave_with_master;
|
|||
connection master;
|
||||
INSERT INTO t4 VALUES (4);
|
||||
connection slave;
|
||||
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column [012] type mismatch.* Error_code: 1535");
|
||||
--let $slave_skip_counter= 2
|
||||
--let $slave_sql_errno= 1535
|
||||
--let $show_slave_sql_error= 1
|
||||
|
|
|
@ -25,6 +25,7 @@ drop table t1;
|
|||
|
||||
connection slave;
|
||||
--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 $errno= query_get_value(SHOW SLAVE STATUS, Last_SQL_Errno, 1);
|
||||
--echo Error: "$error" (expected different error codes on master and slave)
|
||||
|
|
|
@ -107,7 +107,6 @@ INSERT INTO global_suppressions VALUES
|
|||
("Slave: The incident LOST_EVENTS occured on the master"),
|
||||
("Slave: Unknown error.* 1105"),
|
||||
("Slave: Can't drop database.* database doesn't exist"),
|
||||
("Slave SQL:.*(Error_code: \[\[:digit:\]\]+|Query:.*)"),
|
||||
("Sort aborted"),
|
||||
("Time-out in NDB"),
|
||||
("Warning:\s+One can only use the --user.*root"),
|
||||
|
|
|
@ -32,6 +32,7 @@ our @EXPORT= qw(report_option mtr_print_line mtr_print_thick_line
|
|||
use mtr_match;
|
||||
use My::Platform;
|
||||
use POSIX qw[ _exit ];
|
||||
use IO::Handle qw[ flush ];
|
||||
require "mtr_io.pl";
|
||||
|
||||
my $tot_real_time= 0;
|
||||
|
@ -477,6 +478,7 @@ sub mtr_warning (@) {
|
|||
|
||||
# Print error to screen and then exit
|
||||
sub mtr_error (@) {
|
||||
IO::Handle::flush(\*STDOUT) if IS_WINDOWS;
|
||||
print STDERR _name(). _timestamp().
|
||||
"mysql-test-run: *** ERROR: ". join(" ", @_). "\n";
|
||||
if (IS_WINDOWS)
|
||||
|
|
|
@ -123,3 +123,16 @@ CREATE TABLE t2 SELECT 1 FROM t1, t1 t3 GROUP BY t3.a PROCEDURE ANALYSE();
|
|||
ERROR HY000: Incorrect usage of PROCEDURE and non-SELECT
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
#
|
||||
# Bug#11765202: Dbug_violation_helper::~Dbug_violation_helper(): Assertion `!_entered' failed.
|
||||
#
|
||||
DROP TABLE IF EXISTS t1;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 't1'
|
||||
CREATE TABLE t1 (a VARCHAR(2) CHARSET UTF8 NOT NULL);
|
||||
INSERT INTO t1 VALUES ('e'),('e'),('e-');
|
||||
SELECT * FROM t1 PROCEDURE ANALYSE();
|
||||
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
|
||||
test.t1.a e e- 1 2 0 0 1.3333 NULL ENUM('e','e-') NOT NULL
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -1,5 +1,43 @@
|
|||
drop table if exists t1, t2;
|
||||
#
|
||||
# Bug#59297: Can't find record in 'tablename' on update inner join
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
a char(2) NOT NULL,
|
||||
b char(2) NOT NULL,
|
||||
c int(10) unsigned NOT NULL,
|
||||
d varchar(255) DEFAULT NULL,
|
||||
e varchar(1000) DEFAULT NULL,
|
||||
PRIMARY KEY (a, b, c),
|
||||
KEY (a),
|
||||
KEY (a, b)
|
||||
)
|
||||
/*!50100 PARTITION BY KEY (a)
|
||||
PARTITIONS 20 */;
|
||||
INSERT INTO t1 (a, b, c, d, e) VALUES
|
||||
('07', '03', 343, '1', '07_03_343'),
|
||||
('01', '04', 343, '2', '01_04_343'),
|
||||
('01', '06', 343, '3', '01_06_343'),
|
||||
('01', '07', 343, '4', '01_07_343'),
|
||||
('01', '08', 343, '5', '01_08_343'),
|
||||
('01', '09', 343, '6', '01_09_343'),
|
||||
('03', '03', 343, '7', '03_03_343'),
|
||||
('03', '06', 343, '8', '03_06_343'),
|
||||
('03', '07', 343, '9', '03_07_343'),
|
||||
('04', '03', 343, '10', '04_03_343'),
|
||||
('04', '06', 343, '11', '04_06_343'),
|
||||
('05', '03', 343, '12', '05_03_343'),
|
||||
('11', '03', 343, '13', '11_03_343'),
|
||||
('11', '04', 343, '14', '11_04_343')
|
||||
;
|
||||
UPDATE t1 AS A,
|
||||
(SELECT '03' AS a, '06' AS b, 343 AS c, 'last' AS d) AS B
|
||||
SET A.e = B.d
|
||||
WHERE A.a = '03'
|
||||
AND A.b = '06'
|
||||
AND A.c = 343;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#57113: ha_partition::extra(ha_extra_function):
|
||||
# Assertion `m_extra_cache' failed
|
||||
CREATE TABLE t1
|
||||
|
|
9
mysql-test/r/ssl_cipher.result
Normal file
9
mysql-test/r/ssl_cipher.result
Normal file
|
@ -0,0 +1,9 @@
|
|||
#
|
||||
# BUG#11760210 - SSL_CIPHER_LIST NOT SET OR RETURNED FOR "SHOW STATUS LIKE 'SSL_CIPHER_LIST'"
|
||||
#
|
||||
SHOW STATUS LIKE 'Ssl_cipher';
|
||||
Variable_name Value
|
||||
Ssl_cipher AES128-SHA
|
||||
SHOW STATUS LIKE 'Ssl_cipher_list';
|
||||
Variable_name Value
|
||||
Ssl_cipher_list AES128-SHA
|
|
@ -1540,6 +1540,9 @@ ERROR HY000: Cannot drop default keycache
|
|||
SET @@global.key_cache_block_size=0;
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect key_cache_block_size value: '0'
|
||||
select @@max_long_data_size;
|
||||
@@max_long_data_size
|
||||
1048576
|
||||
SET @@global.max_binlog_cache_size=DEFAULT;
|
||||
SET @@global.max_join_size=DEFAULT;
|
||||
SET @@global.key_buffer_size=@kbs;
|
||||
|
|
|
@ -91,6 +91,8 @@ 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
|
||||
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");
|
||||
#
|
||||
# Bug #54393: crash and/or valgrind errors in
|
||||
# mysql_client_binlog_statement
|
||||
|
|
|
@ -1374,6 +1374,7 @@ unique_checks OFF
|
|||
# INSERT INTO t1 VALUES(2)
|
||||
# foreign_key_checks=1 and unique_checks=1
|
||||
# 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 '
|
||||
dfLtTBMBAAAAKQAAAKsBAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE=
|
||||
dfLtTBcBAAAAIgAAAM0BAAAAABcAAAAAAAEAAf/+AgAAAA==
|
||||
|
|
|
@ -845,6 +845,7 @@ unique_checks OFF
|
|||
# INSERT INTO t1 VALUES(2)
|
||||
# foreign_key_checks=1 and unique_checks=1
|
||||
# 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 '
|
||||
dfLtTBMBAAAAKQAAAKsBAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE=
|
||||
dfLtTBcBAAAAIgAAAM0BAAAAABcAAAAAAAEAAf/+AgAAAA==
|
||||
|
|
|
@ -151,6 +151,8 @@ iONkSBcBAAAAKwAAAMQBAAAQABAAAAAAAAEAA//4AQAAAAMAMTIzAQAAAA==
|
|||
|
||||
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");
|
||||
|
||||
--echo #
|
||||
--echo # Bug #54393: crash and/or valgrind errors in
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
include/master-slave.inc
|
||||
[connection master]
|
||||
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 ====
|
||||
include/stop_slave.inc
|
||||
RESET SLAVE;
|
||||
|
|
|
@ -125,6 +125,7 @@ include/stop_slave.inc
|
|||
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("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;
|
||||
SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE;
|
||||
SET GLOBAL binlog_cache_size= ORIGINAL_VALUE;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
include/master-slave.inc
|
||||
[connection master]
|
||||
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
|
||||
reset slave;
|
||||
SET GLOBAL debug="d,simulate_io_slave_error_on_init,simulate_sql_slave_error_on_init";
|
||||
|
|
|
@ -46,6 +46,7 @@ SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
|
|||
include/start_slave.inc
|
||||
INSERT INTO t1 VALUES(6,'C',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]
|
||||
INSERT INTO t1(b,c) VALUES('A',2);
|
||||
INSERT INTO t1(b,c) VALUES('D',2);
|
||||
|
|
|
@ -58,6 +58,10 @@ 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
|
||||
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
|
||||
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");
|
||||
|
||||
* Select count and 20 rows from Slave *
|
||||
|
||||
|
@ -929,6 +933,10 @@ 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
|
||||
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
|
||||
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");
|
||||
|
||||
* Select count and 20 rows from Slave *
|
||||
|
||||
|
@ -1800,6 +1808,10 @@ 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
|
||||
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
|
||||
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");
|
||||
|
||||
* Select count and 20 rows from Slave *
|
||||
|
||||
|
|
|
@ -58,6 +58,10 @@ 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
|
||||
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
|
||||
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");
|
||||
|
||||
* Select count and 20 rows from Slave *
|
||||
|
||||
|
@ -929,6 +933,10 @@ 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
|
||||
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
|
||||
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");
|
||||
|
||||
* Select count and 20 rows from Slave *
|
||||
|
||||
|
@ -1800,6 +1808,10 @@ 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
|
||||
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
|
||||
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");
|
||||
|
||||
* Select count and 20 rows from Slave *
|
||||
|
||||
|
|
|
@ -460,6 +460,9 @@ c4 BLOB, c5 CHAR(5)) ENGINE='InnoDB';
|
|||
RESET MASTER;
|
||||
*** Start Slave ***
|
||||
START SLAVE;
|
||||
call mtr.add_suppression("Slave SQL.*Error .Unknown table .t6.. on query.* Error_code: 1051");
|
||||
call mtr.add_suppression("Slave SQL.*Error .Duplicate column name .c6.. on query.* Error_code: 1060");
|
||||
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column . ...e mismatch.* Error_code: 1535");
|
||||
*** Master Data Insert ***
|
||||
set @b1 = 'b1b1b1b1';
|
||||
set @b1 = concat(@b1,@b1);
|
||||
|
|
|
@ -460,6 +460,9 @@ c4 BLOB, c5 CHAR(5)) ENGINE='MyISAM';
|
|||
RESET MASTER;
|
||||
*** Start Slave ***
|
||||
START SLAVE;
|
||||
call mtr.add_suppression("Slave SQL.*Error .Unknown table .t6.. on query.* Error_code: 1051");
|
||||
call mtr.add_suppression("Slave SQL.*Error .Duplicate column name .c6.. on query.* Error_code: 1060");
|
||||
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column . ...e mismatch.* Error_code: 1535");
|
||||
*** Master Data Insert ***
|
||||
set @b1 = 'b1b1b1b1';
|
||||
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
|
|||
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 (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;
|
||||
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''
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
include/master-slave.inc
|
||||
[connection master]
|
||||
call mtr.add_suppression("Slave: Can't find record in 't.' 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: Cannot add or update a child row: a foreign key constraint fails .* Error_code: 1452");
|
||||
call mtr.add_suppression("Can.t find record in .t[12].* Error_code: 1032");
|
||||
call mtr.add_suppression("Cannot delete or update a parent row: a foreign key constraint fails .* Error_code: 1451");
|
||||
call mtr.add_suppression("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");
|
||||
SET @old_slave_exec_mode= @@global.slave_exec_mode;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY);
|
||||
CREATE TABLE t2 (a INT);
|
||||
|
|
|
@ -112,6 +112,7 @@ show grants for mysqltest4@localhost;
|
|||
Grants for mysqltest4@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqltest4'@'localhost' IDENTIFIED BY PASSWORD '*196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7'
|
||||
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 t4;
|
||||
drop database mysqltest2;
|
||||
|
|
|
@ -15,6 +15,7 @@ a
|
|||
2
|
||||
3
|
||||
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]
|
||||
Last_SQL_Error = 'The incident LOST_EVENTS occured on the master. Message: <none>'
|
||||
**** On Slave ****
|
||||
|
|
|
@ -6,7 +6,7 @@ SET GLOBAL debug= "d,simulate_io_slave_error_on_init,simulate_sql_slave_error_on
|
|||
start slave;
|
||||
include/wait_for_slave_sql_error.inc [errno=1593]
|
||||
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= "";
|
||||
reset slave;
|
||||
SET GLOBAL init_slave= "garbage";
|
||||
|
|
|
@ -7,6 +7,7 @@ SELECT * FROM t1;
|
|||
a b
|
||||
1 10
|
||||
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]
|
||||
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;
|
||||
|
|
|
@ -27,6 +27,8 @@ drop table t3;
|
|||
create table t1(a int, b int, unique(b));
|
||||
insert into t1 values(1,10);
|
||||
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/check_slave_no_error.inc
|
||||
set sql_log_bin=0;
|
||||
|
|
|
@ -38,6 +38,8 @@ drop table t3;
|
|||
create table t1(a int, b int, unique(b));
|
||||
insert into t1 values(1,10);
|
||||
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/check_slave_no_error.inc
|
||||
set sql_log_bin=0;
|
||||
|
|
|
@ -3,6 +3,7 @@ include/master-slave.inc
|
|||
CREATE TABLE t1 (a INT, b INT);
|
||||
INSERT INTO t1 VALUES (1,10);
|
||||
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]
|
||||
Last_SQL_Error = 'Fatal error: Not enough memory'
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -36,6 +36,7 @@ drop table temp_table, t3;
|
|||
insert into t2 values(1234);
|
||||
set insert_id=1234;
|
||||
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]
|
||||
purge master logs to 'master-bin.000002';
|
||||
show master logs;
|
||||
|
|
|
@ -63,6 +63,7 @@ DROP TABLE t1;
|
|||
include/rpl_reset.inc
|
||||
**** On Slave ****
|
||||
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 ****
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (1),(2),(3);
|
||||
|
|
|
@ -478,6 +478,8 @@ include/diff_tables.inc [master:t2, slave:t2]
|
|||
[expecting slave to stop]
|
||||
INSERT INTO t3 VALUES (1, "", 1);
|
||||
INSERT INTO t3 VALUES (2, repeat(_utf8'a', 128), 2);
|
||||
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");
|
||||
include/wait_for_slave_sql_error.inc [errno=1535]
|
||||
Last_SQL_Error = 'Table definition on master and slave does not match: Column 1 size mismatch - master has size 384, test.t3 on slave has size 49. Master's column size should be <= the slave's column size.'
|
||||
include/rpl_reset.inc
|
||||
|
|
|
@ -478,6 +478,8 @@ include/diff_tables.inc [master:t2, slave:t2]
|
|||
[expecting slave to stop]
|
||||
INSERT INTO t3 VALUES (1, "", 1);
|
||||
INSERT INTO t3 VALUES (2, repeat(_utf8'a', 128), 2);
|
||||
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");
|
||||
include/wait_for_slave_sql_error.inc [errno=1535]
|
||||
Last_SQL_Error = 'Table definition on master and slave does not match: Column 1 size mismatch - master has size 384, test.t3 on slave has size 49. Master's column size should be <= the slave's column size.'
|
||||
include/rpl_reset.inc
|
||||
|
|
|
@ -265,6 +265,7 @@ STOP SLAVE;
|
|||
RESET SLAVE;
|
||||
RESET MASTER;
|
||||
START SLAVE;
|
||||
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 0 ...e mismatch.* Error_code: 1535");
|
||||
*** Cleanup ***
|
||||
DROP TABLE IF EXISTS t1;
|
||||
include/rpl_end.inc
|
||||
|
|
|
@ -22,6 +22,7 @@ a
|
|||
---- Wait until slave stops with an error ----
|
||||
include/wait_for_slave_sql_error.inc [errno=1062]
|
||||
Last_SQL_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 346 (expected "duplicate key" error)
|
||||
call mtr.add_suppression("Slave SQL.*Duplicate entry .1. for key .PRIMARY.* Error_code: 1062");
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
1
|
||||
|
@ -48,6 +49,7 @@ SELECT * FROM t1;
|
|||
a
|
||||
[on slave]
|
||||
---- Wait until slave stops with an error ----
|
||||
call mtr.add_suppression("Can.t find record in .t1., Error_code: 1032");
|
||||
include/wait_for_slave_sql_error.inc [errno=1032]
|
||||
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
|
||||
|
|
|
@ -10,6 +10,7 @@ DROP TABLE t1;
|
|||
INSERT INTO t1 VALUES (1);
|
||||
==== Verify error on slave ====
|
||||
[on slave]
|
||||
call mtr.add_suppression("Slave SQL.*Error .Table .test.t1. doesn.t exist. on opening tables, Error_code: 1146");
|
||||
include/wait_for_slave_sql_error.inc [errno=1146]
|
||||
==== Clean up ====
|
||||
include/stop_slave_io.inc
|
||||
|
|
|
@ -117,6 +117,7 @@ a
|
|||
include/check_slave_is_running.inc
|
||||
INSERT INTO t9 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");
|
||||
include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
|
||||
Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4'
|
||||
INSERT INTO t9 VALUES (5);
|
||||
|
|
|
@ -117,6 +117,7 @@ a
|
|||
include/check_slave_is_running.inc
|
||||
INSERT INTO t9 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");
|
||||
include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
|
||||
Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4'
|
||||
INSERT INTO t9 VALUES (5);
|
||||
|
|
|
@ -56,6 +56,7 @@ t1 CREATE TABLE `t1` (
|
|||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
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;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
|
|
|
@ -29,6 +29,7 @@ a b
|
|||
SELECT * FROM t3 ORDER BY a;
|
||||
a b
|
||||
1 ZZ
|
||||
call mtr.add_suppression("Slave SQL.*Error .Table .test.t3. doesn.t exist. on.* Error_code: 1146");
|
||||
include/wait_for_slave_sql_error.inc [errno=1146]
|
||||
SHOW TABLES LIKE 't%';
|
||||
Tables_in_test (t%)
|
||||
|
|
|
@ -13,4 +13,5 @@ include/stop_slave_io.inc
|
|||
RESET SLAVE;
|
||||
drop table t1;
|
||||
call mtr.add_suppression("Slave: Error writing file 'UNKNOWN' .Errcode: 9. Error_code: 3");
|
||||
call mtr.add_suppression("Slave SQL.*Error in Begin_load_query event: write to.* failed, Error_code: 9");
|
||||
include/rpl_end.inc
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
include/master-slave.inc
|
||||
[connection master]
|
||||
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/stop_slave_io.inc
|
||||
RESET SLAVE;
|
||||
|
|
|
@ -8,6 +8,7 @@ insert into t1 values(1),(2);
|
|||
ERROR 23000: Duplicate entry '2' for key 'a'
|
||||
drop table t1;
|
||||
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)
|
||||
Errno: "0" (expected 0)
|
||||
drop table t1;
|
||||
|
|
|
@ -17,6 +17,7 @@ a
|
|||
---- Wait until slave stops with an error ----
|
||||
include/wait_for_slave_sql_error.inc [errno=1062]
|
||||
Last_SQL_Error = Error 'Duplicate entry '1' for key 'PRIMARY'' on query. Default database: 'test'. Query: 'INSERT INTO t1 VALUES (1)' (expected "duplicate key" error)
|
||||
call mtr.add_suppression("Slave SQL.*Duplicate entry .1. for key .PRIMARY.* Error_code: 1062");
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
1
|
||||
|
|
|
@ -146,6 +146,7 @@ DROP TABLE t1, t2;
|
|||
CREATE TABLE t1 (c1 INT KEY, c2 INT) ENGINE=InnoDB;
|
||||
CREATE TABLE t2 (c1 INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES(1, 1);
|
||||
[connection master]
|
||||
SET GLOBAL debug= 'd,dump_thread_wait_before_send_xid';
|
||||
[connection slave]
|
||||
include/restart_slave.inc
|
||||
|
|
|
@ -37,6 +37,7 @@ a b
|
|||
3 3
|
||||
4 4
|
||||
include/check_slave_is_running.inc
|
||||
call mtr.add_suppression("Slave SQL.*Could not execute Update_rows event on table test.t1");
|
||||
**** On Master ****
|
||||
DROP TABLE t1;
|
||||
SET SESSION BINLOG_FORMAT=MIXED;
|
||||
|
|
|
@ -22,7 +22,7 @@ source include/have_debug.inc;
|
|||
|
||||
--connection slave
|
||||
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
|
||||
|
|
|
@ -398,6 +398,7 @@ source include/stop_slave.inc;
|
|||
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("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;
|
||||
TRUNCATE t1;
|
||||
|
|
|
@ -9,6 +9,7 @@ connection slave;
|
|||
|
||||
# Add suppression for expected warnings in slaves error log
|
||||
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
|
||||
reset slave;
|
||||
|
|
|
@ -82,6 +82,7 @@ INSERT INTO t1(b,c) VALUES('B',2);
|
|||
# Wait while C will stop.
|
||||
--connection server_3
|
||||
# 1062 = ER_DUP_ENTRY
|
||||
call mtr.add_suppression("Slave SQL.*Duplicate entry .6. for key .PRIMARY.* Error_code: 1062");
|
||||
--let $slave_sql_errno= 1062
|
||||
--source include/wait_for_slave_sql_error.inc
|
||||
--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
|
|||
# if any of the above statement are not ignored, it would cause error
|
||||
# and stop slave sql thread.
|
||||
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;
|
||||
|
||||
# Parameters for include/wait_for_slave_sql_error_and_skip.inc:
|
||||
|
|
|
@ -8,9 +8,10 @@ connection slave;
|
|||
source include/have_innodb.inc;
|
||||
|
||||
# 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: 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("Can.t find record in .t[12].* Error_code: 1032");
|
||||
call mtr.add_suppression("Cannot delete or update a parent row: a foreign key constraint fails .* Error_code: 1451");
|
||||
call mtr.add_suppression("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");
|
||||
|
||||
SET @old_slave_exec_mode= @@global.slave_exec_mode;
|
||||
|
||||
|
|
|
@ -125,6 +125,7 @@ show grants for mysqltest4@localhost;
|
|||
# where mysqltest1 does not exist on slave,
|
||||
# to succeed on slave the mode is temporarily changed
|
||||
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;
|
||||
drop table t1, mysqltest2.t2;
|
||||
|
|
|
@ -15,6 +15,7 @@ SELECT * FROM t1;
|
|||
|
||||
connection slave;
|
||||
# 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 $show_slave_sql_error= 1;
|
||||
source include/wait_for_slave_sql_error.inc;
|
||||
|
|
|
@ -58,7 +58,7 @@ start slave;
|
|||
--let $show_slave_sql_error= 1
|
||||
--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= "";
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ connection slave;
|
|||
#1105 = ER_UNKNOWN_ERROR
|
||||
--let $slave_sql_errno= 1105
|
||||
--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
|
||||
# show that it was not replicated
|
||||
SELECT * FROM t1;
|
||||
|
|
|
@ -15,6 +15,7 @@ connection master;
|
|||
LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE t1;
|
||||
|
||||
connection slave;
|
||||
call mtr.add_suppression("Slave SQL.*Fatal error: Not enough memory, Error_code: 1593");
|
||||
let $slave_sql_errno= 1593;
|
||||
let $show_slave_sql_error= 1;
|
||||
source include/wait_for_slave_sql_error_and_skip.inc;
|
||||
|
|
|
@ -93,6 +93,7 @@ set insert_id=1234;
|
|||
insert into t2 values(NULL);
|
||||
connection slave;
|
||||
# 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
|
||||
--source include/wait_for_slave_sql_error_and_skip.inc
|
||||
|
||||
|
|
|
@ -62,6 +62,7 @@ DROP TABLE t1;
|
|||
--echo **** On Slave ****
|
||||
connection slave;
|
||||
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 ****
|
||||
connection master;
|
||||
|
|
|
@ -160,6 +160,9 @@ let $test_table_slave = CREATE TABLE t1 (a TINYBLOB);
|
|||
let $test_insert = INSERT INTO t1 VALUES ('This is a test.');
|
||||
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");
|
||||
|
||||
--echo *** Cleanup ***
|
||||
connection master;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
|
|
|
@ -30,6 +30,7 @@ INSERT INTO t1 VALUES (1);
|
|||
connection slave;
|
||||
# slave should have stopped because can't find table t1
|
||||
# 1146 = ER_NO_SUCH_TABLE
|
||||
call mtr.add_suppression("Slave SQL.*Error .Table .test.t1. doesn.t exist. on opening tables, Error_code: 1146");
|
||||
--let $slave_sql_errno= 1146
|
||||
--source include/wait_for_slave_sql_error.inc
|
||||
|
||||
|
|
|
@ -102,6 +102,8 @@ SET SQL_LOG_BIN=1;
|
|||
|
||||
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;
|
||||
SHOW CREATE TABLE t1;
|
||||
|
||||
|
|
|
@ -63,6 +63,7 @@ SELECT * FROM t3 ORDER BY a;
|
|||
|
||||
--connection slave
|
||||
# 1146 = ER_NO_SUCH_TABLE
|
||||
call mtr.add_suppression("Slave SQL.*Error .Table .test.t3. doesn.t exist. on.* Error_code: 1146");
|
||||
--let $slave_sql_errno= 1146
|
||||
--source include/wait_for_slave_sql_error.inc
|
||||
SHOW TABLES LIKE 't%';
|
||||
|
|
|
@ -49,5 +49,6 @@ RESET SLAVE;
|
|||
drop table t1;
|
||||
|
||||
call mtr.add_suppression("Slave: Error writing file 'UNKNOWN' .Errcode: 9. Error_code: 3");
|
||||
call mtr.add_suppression("Slave SQL.*Error in Begin_load_query event: write to.* failed, Error_code: 9");
|
||||
--let $rpl_only_running_threads= 1
|
||||
--source include/rpl_end.inc
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
--connection slave
|
||||
START SLAVE;
|
||||
# Why 12???
|
||||
call mtr.add_suppression("Slave SQL.*Unable to use slave.s temporary directory.* Error_code: 12");
|
||||
--let $slave_sql_errno= 12
|
||||
source include/wait_for_slave_sql_error.inc;
|
||||
|
||||
|
|
|
@ -76,11 +76,13 @@ CREATE TABLE t1 (c1 INT KEY, c2 INT) ENGINE=InnoDB;
|
|||
CREATE TABLE t2 (c1 INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES(1, 1);
|
||||
|
||||
sync_slave_with_master;
|
||||
|
||||
--source include/rpl_connection_master.inc
|
||||
|
||||
let $debug_save= `SELECT @@GLOBAL.debug`;
|
||||
SET GLOBAL debug= 'd,dump_thread_wait_before_send_xid';
|
||||
|
||||
sync_slave_with_master;
|
||||
|
||||
--source include/rpl_connection_slave.inc
|
||||
source include/restart_slave_sql.inc;
|
||||
|
||||
|
|
|
@ -28,6 +28,9 @@ SHOW STATUS LIKE 'Slave_retried_transactions';
|
|||
SELECT * FROM t1;
|
||||
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 ****
|
||||
connection master;
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -133,3 +133,15 @@ DROP TABLE t1;
|
|||
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
--echo #
|
||||
--echo # Bug#11765202: Dbug_violation_helper::~Dbug_violation_helper(): Assertion `!_entered' failed.
|
||||
--echo #
|
||||
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a VARCHAR(2) CHARSET UTF8 NOT NULL);
|
||||
INSERT INTO t1 VALUES ('e'),('e'),('e-');
|
||||
SELECT * FROM t1 PROCEDURE ANALYSE();
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
|
|
@ -14,6 +14,49 @@
|
|||
drop table if exists t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
--echo #
|
||||
--echo # Bug#59297: Can't find record in 'tablename' on update inner join
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (
|
||||
a char(2) NOT NULL,
|
||||
b char(2) NOT NULL,
|
||||
c int(10) unsigned NOT NULL,
|
||||
d varchar(255) DEFAULT NULL,
|
||||
e varchar(1000) DEFAULT NULL,
|
||||
PRIMARY KEY (a, b, c),
|
||||
KEY (a),
|
||||
KEY (a, b)
|
||||
)
|
||||
/*!50100 PARTITION BY KEY (a)
|
||||
PARTITIONS 20 */;
|
||||
|
||||
INSERT INTO t1 (a, b, c, d, e) VALUES
|
||||
('07', '03', 343, '1', '07_03_343'),
|
||||
('01', '04', 343, '2', '01_04_343'),
|
||||
('01', '06', 343, '3', '01_06_343'),
|
||||
('01', '07', 343, '4', '01_07_343'),
|
||||
('01', '08', 343, '5', '01_08_343'),
|
||||
('01', '09', 343, '6', '01_09_343'),
|
||||
('03', '03', 343, '7', '03_03_343'),
|
||||
('03', '06', 343, '8', '03_06_343'),
|
||||
('03', '07', 343, '9', '03_07_343'),
|
||||
('04', '03', 343, '10', '04_03_343'),
|
||||
('04', '06', 343, '11', '04_06_343'),
|
||||
('05', '03', 343, '12', '05_03_343'),
|
||||
('11', '03', 343, '13', '11_03_343'),
|
||||
('11', '04', 343, '14', '11_04_343')
|
||||
;
|
||||
|
||||
UPDATE t1 AS A,
|
||||
(SELECT '03' AS a, '06' AS b, 343 AS c, 'last' AS d) AS B
|
||||
SET A.e = B.d
|
||||
WHERE A.a = '03'
|
||||
AND A.b = '06'
|
||||
AND A.c = 343;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#57113: ha_partition::extra(ha_extra_function):
|
||||
--echo # Assertion `m_extra_cache' failed
|
||||
|
|
1
mysql-test/t/ssl_cipher-master.opt
Normal file
1
mysql-test/t/ssl_cipher-master.opt
Normal file
|
@ -0,0 +1 @@
|
|||
--ssl-cipher=AES128-SHA
|
23
mysql-test/t/ssl_cipher.test
Normal file
23
mysql-test/t/ssl_cipher.test
Normal file
|
@ -0,0 +1,23 @@
|
|||
# Turn on ssl between the client and server
|
||||
# and run a number of tests
|
||||
|
||||
--echo #
|
||||
--echo # BUG#11760210 - SSL_CIPHER_LIST NOT SET OR RETURNED FOR "SHOW STATUS LIKE 'SSL_CIPHER_LIST'"
|
||||
--echo #
|
||||
|
||||
-- source include/have_ssl.inc
|
||||
|
||||
# Save the initial number of concurrent sessions
|
||||
--source include/count_sessions.inc
|
||||
|
||||
connect (ssl_con,localhost,root,,,,,SSL);
|
||||
|
||||
# Check Cipher Name and Cipher List
|
||||
SHOW STATUS LIKE 'Ssl_cipher';
|
||||
SHOW STATUS LIKE 'Ssl_cipher_list';
|
||||
|
||||
connection default;
|
||||
disconnect ssl_con;
|
||||
|
||||
# Wait till all disconnects are completed
|
||||
--source include/wait_until_count_sessions.inc
|
|
@ -1293,6 +1293,11 @@ SET @@global.max_join_size=0;
|
|||
SET @@global.key_buffer_size=0;
|
||||
SET @@global.key_cache_block_size=0;
|
||||
|
||||
#
|
||||
# Bug#56976: added new start-up parameter
|
||||
#
|
||||
select @@max_long_data_size;
|
||||
|
||||
# cleanup
|
||||
SET @@global.max_binlog_cache_size=DEFAULT;
|
||||
SET @@global.max_join_size=DEFAULT;
|
||||
|
|
|
@ -4317,6 +4317,7 @@ int ha_partition::index_read_idx_map(uchar *buf, uint index,
|
|||
break;
|
||||
}
|
||||
}
|
||||
m_last_part= part;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
10
sql/item.cc
10
sql/item.cc
|
@ -2742,6 +2742,16 @@ bool Item_param::set_longdata(const char *str, ulong length)
|
|||
(here), and first have to concatenate all pieces together,
|
||||
write query to the binary log and only then perform conversion.
|
||||
*/
|
||||
if (str_value.length() + length > max_long_data_size)
|
||||
{
|
||||
my_message(ER_UNKNOWN_ERROR,
|
||||
"Parameter of prepared statement which is set through "
|
||||
"mysql_send_long_data() is longer than "
|
||||
"'max_long_data_size' bytes",
|
||||
MYF(0));
|
||||
DBUG_RETURN(true);
|
||||
}
|
||||
|
||||
if (str_value.append(str, length, &my_charset_bin))
|
||||
DBUG_RETURN(TRUE);
|
||||
state= LONG_DATA_VALUE;
|
||||
|
|
|
@ -1965,6 +1965,7 @@ extern my_bool relay_log_purge, opt_innodb_safe_binlog, opt_innodb;
|
|||
extern uint test_flags,select_errors,ha_open_options;
|
||||
extern uint protocol_version, mysqld_port, dropping_tables;
|
||||
extern uint delay_key_write_options;
|
||||
extern ulong max_long_data_size;
|
||||
#endif /* MYSQL_SERVER */
|
||||
#if defined MYSQL_SERVER || defined INNODB_COMPATIBILITY_HOOKS
|
||||
extern MYSQL_PLUGIN_IMPORT uint lower_case_table_names;
|
||||
|
|
|
@ -409,6 +409,7 @@ TYPELIB log_output_typelib= {array_elements(log_output_names)-1,"",
|
|||
|
||||
/* the default log output is log tables */
|
||||
static bool lower_case_table_names_used= 0;
|
||||
static bool max_long_data_size_used= false;
|
||||
static bool volatile select_thread_in_use, signal_thread_in_use;
|
||||
static bool volatile ready_to_exit;
|
||||
static my_bool opt_debugging= 0, opt_external_locking= 0, opt_console= 0;
|
||||
|
@ -574,6 +575,11 @@ ulong delayed_insert_errors,flush_time;
|
|||
ulong specialflag=0;
|
||||
ulong binlog_cache_use= 0, binlog_cache_disk_use= 0;
|
||||
ulong max_connections, max_connect_errors;
|
||||
/*
|
||||
Maximum length of parameter value which can be set through
|
||||
mysql_send_long_data() call.
|
||||
*/
|
||||
ulong max_long_data_size;
|
||||
uint max_user_connections= 0;
|
||||
/**
|
||||
Limit of the total number of prepared statements in the server.
|
||||
|
@ -5800,7 +5806,8 @@ enum options_mysqld
|
|||
OPT_SLOW_QUERY_LOG_FILE,
|
||||
OPT_IGNORE_BUILTIN_INNODB,
|
||||
OPT_BINLOG_DIRECT_NON_TRANS_UPDATE,
|
||||
OPT_DEFAULT_CHARACTER_SET_OLD
|
||||
OPT_DEFAULT_CHARACTER_SET_OLD,
|
||||
OPT_MAX_LONG_DATA_SIZE
|
||||
};
|
||||
|
||||
|
||||
|
@ -6880,6 +6887,13 @@ thread is in the relay logs.",
|
|||
&global_system_variables.max_length_for_sort_data,
|
||||
&max_system_variables.max_length_for_sort_data, 0, GET_ULONG,
|
||||
REQUIRED_ARG, 1024, 4, 8192*1024L, 0, 1, 0},
|
||||
{"max_long_data_size", OPT_MAX_LONG_DATA_SIZE,
|
||||
"The maximum size of prepared statement parameter which can be provided "
|
||||
"through mysql_send_long_data() API call. "
|
||||
"Deprecated option; use max_allowed_packet instead.",
|
||||
&max_long_data_size,
|
||||
&max_long_data_size, 0, GET_ULONG,
|
||||
REQUIRED_ARG, 1024*1024L, 1024, UINT_MAX32, MALLOC_OVERHEAD, 1, 0},
|
||||
{"max_prepared_stmt_count", OPT_MAX_PREPARED_STMT_COUNT,
|
||||
"Maximum number of prepared statements in the server.",
|
||||
&max_prepared_stmt_count, &max_prepared_stmt_count,
|
||||
|
@ -8688,6 +8702,10 @@ mysqld_get_one_option(int optid,
|
|||
}
|
||||
break;
|
||||
#endif /* defined(ENABLED_DEBUG_SYNC) */
|
||||
case OPT_MAX_LONG_DATA_SIZE:
|
||||
max_long_data_size_used= true;
|
||||
WARN_DEPRECATED(NULL, VER_CELOSIA, "--max_long_data_size", "--max_allowed_packet");
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -8849,6 +8867,14 @@ static int get_options(int *argc,char **argv)
|
|||
else
|
||||
pool_of_threads_scheduler(&thread_scheduler); /* purecov: tested */
|
||||
#endif
|
||||
|
||||
/*
|
||||
If max_long_data_size is not specified explicitly use
|
||||
value of max_allowed_packet.
|
||||
*/
|
||||
if (!max_long_data_size_used)
|
||||
max_long_data_size= global_system_variables.max_allowed_packet;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -394,6 +394,12 @@ static sys_var_thd_ulong sys_max_seeks_for_key(&vars, "max_seeks_for_key",
|
|||
&SV::max_seeks_for_key);
|
||||
static sys_var_thd_ulong sys_max_length_for_sort_data(&vars, "max_length_for_sort_data",
|
||||
&SV::max_length_for_sort_data);
|
||||
static sys_var_const sys_max_long_data_size(&vars,
|
||||
"max_long_data_size",
|
||||
OPT_GLOBAL, SHOW_LONG,
|
||||
(uchar*)
|
||||
&max_long_data_size);
|
||||
|
||||
#ifndef TO_BE_DELETED /* Alias for max_join_size */
|
||||
static sys_var_thd_ha_rows sys_sql_max_join_size(&vars, "sql_max_join_size",
|
||||
&SV::max_join_size,
|
||||
|
|
|
@ -242,7 +242,7 @@ bool test_if_number(NUM_INFO *info, const char *str, uint str_len)
|
|||
if (str == end)
|
||||
{
|
||||
info->is_float = 1; // we can't use variable decimals here
|
||||
return 1;
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
|
|
@ -2730,6 +2730,32 @@ void mysql_sql_stmt_close(THD *thd)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
class Set_longdata_error_handler : public Internal_error_handler
|
||||
{
|
||||
public:
|
||||
Set_longdata_error_handler(Prepared_statement *statement)
|
||||
: stmt(statement)
|
||||
{ }
|
||||
|
||||
public:
|
||||
bool handle_error(uint sql_errno,
|
||||
const char *message,
|
||||
MYSQL_ERROR::enum_warning_level level,
|
||||
THD *)
|
||||
{
|
||||
stmt->state= Query_arena::ERROR;
|
||||
stmt->last_errno= sql_errno;
|
||||
strncpy(stmt->last_error, message, MYSQL_ERRMSG_SIZE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
private:
|
||||
Prepared_statement *stmt;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
Handle long data in pieces from client.
|
||||
|
||||
|
@ -2786,16 +2812,19 @@ void mysql_stmt_get_longdata(THD *thd, char *packet, ulong packet_length)
|
|||
|
||||
param= stmt->param_array[param_number];
|
||||
|
||||
Set_longdata_error_handler err_handler(stmt);
|
||||
/*
|
||||
Install handler that will catch any errors that can be generated
|
||||
during execution of Item_param::set_longdata() and propagate
|
||||
them to Statement::last_error.
|
||||
*/
|
||||
thd->push_internal_handler(&err_handler);
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
if (param->set_longdata(packet, (ulong) (packet_end - packet)))
|
||||
param->set_longdata(packet, (ulong) (packet_end - packet));
|
||||
#else
|
||||
if (param->set_longdata(thd->extra_data, thd->extra_length))
|
||||
param->set_longdata(thd->extra_data, thd->extra_length);
|
||||
#endif
|
||||
{
|
||||
stmt->state= Query_arena::ERROR;
|
||||
stmt->last_errno= ER_OUTOFMEMORY;
|
||||
sprintf(stmt->last_error, ER(ER_OUTOFMEMORY), 0);
|
||||
}
|
||||
thd->pop_internal_handler();
|
||||
|
||||
general_log_print(thd, thd->command, NullS);
|
||||
|
||||
|
@ -3257,6 +3286,13 @@ Prepared_statement::execute_loop(String *expanded_query,
|
|||
bool error;
|
||||
int reprepare_attempt= 0;
|
||||
|
||||
/* Check if we got an error when sending long data */
|
||||
if (state == Query_arena::ERROR)
|
||||
{
|
||||
my_message(last_errno, last_error, MYF(0));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (set_parameters(expanded_query, packet, packet_end))
|
||||
return TRUE;
|
||||
|
||||
|
@ -3497,12 +3533,6 @@ bool Prepared_statement::execute(String *expanded_query, bool open_cursor)
|
|||
|
||||
status_var_increment(thd->status_var.com_stmt_execute);
|
||||
|
||||
/* Check if we got an error when sending long data */
|
||||
if (state == Query_arena::ERROR)
|
||||
{
|
||||
my_message(last_errno, last_error, MYF(0));
|
||||
return TRUE;
|
||||
}
|
||||
if (flags & (uint) IS_IN_USE)
|
||||
{
|
||||
my_error(ER_PS_NO_RECURSION, MYF(0));
|
||||
|
|
|
@ -18464,6 +18464,56 @@ static void test_bug58036()
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
Bug #56976: Severe Denial Of Service in prepared statements
|
||||
*/
|
||||
static void test_bug56976()
|
||||
{
|
||||
MYSQL_STMT *stmt;
|
||||
MYSQL_BIND bind[1];
|
||||
int rc;
|
||||
const char* query = "SELECT LENGTH(?)";
|
||||
char *long_buffer;
|
||||
unsigned long i, packet_len = 256 * 1024L;
|
||||
unsigned long dos_len = 2 * 1024 * 1024L;
|
||||
|
||||
DBUG_ENTER("test_bug56976");
|
||||
myheader("test_bug56976");
|
||||
|
||||
stmt= mysql_stmt_init(mysql);
|
||||
check_stmt(stmt);
|
||||
|
||||
rc= mysql_stmt_prepare(stmt, query, strlen(query));
|
||||
check_execute(stmt, rc);
|
||||
|
||||
memset(bind, 0, sizeof(bind));
|
||||
bind[0].buffer_type = MYSQL_TYPE_TINY_BLOB;
|
||||
|
||||
rc= mysql_stmt_bind_param(stmt, bind);
|
||||
check_execute(stmt, rc);
|
||||
|
||||
long_buffer= (char*) my_malloc(packet_len, MYF(0));
|
||||
DIE_UNLESS(long_buffer);
|
||||
|
||||
memset(long_buffer, 'a', packet_len);
|
||||
|
||||
for (i= 0; i < dos_len / packet_len; i++)
|
||||
{
|
||||
rc= mysql_stmt_send_long_data(stmt, 0, long_buffer, packet_len);
|
||||
check_execute(stmt, rc);
|
||||
}
|
||||
|
||||
my_free(long_buffer, MYF(0));
|
||||
rc= mysql_stmt_execute(stmt);
|
||||
|
||||
DIE_UNLESS(rc && mysql_stmt_errno(stmt) == ER_UNKNOWN_ERROR);
|
||||
|
||||
mysql_stmt_close(stmt);
|
||||
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Read and parse arguments and MySQL options from my.cnf
|
||||
*/
|
||||
|
@ -18791,6 +18841,7 @@ static struct my_tests_st my_tests[]= {
|
|||
{ "test_bug54041", test_bug54041 },
|
||||
{ "test_bug47485", test_bug47485 },
|
||||
{ "test_bug58036", test_bug58036 },
|
||||
{ "test_bug56976", test_bug56976 },
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue