mirror of
https://github.com/MariaDB/server.git
synced 2025-02-01 11:31:51 +01:00
cc05440836
Some of the test cases reference to binlog position and these position numbers are written into result explicitly. It is difficult to maintain if log event format changes. There are a couple of cases explicit position number appears, we handle them in different ways A. 'CHANGE MASTER ...' with MASTER_LOG_POS or/and RELAY_LOG_POS options Use --replace_result to mask them. B. 'SHOW BINLOG EVENT ...' Replaced by show_binlog_events.inc or wait_for_binlog_event.inc. show_binlog_events.inc file's function is enhanced by given $binlog_file and $binlog_limit. C. 'SHOW SLAVE STATUS', 'show_slave_status.inc' and 'show_slave_status2.inc' For the test cases just care a few items in the result of 'SHOW SLAVE STATUS', only the items related to each test case are showed. 'show_slave_status.inc' is rebuild, only the given items in $status_items will be showed. 'check_slave_is_running.inc' and 'check_slave_no_error.inc' and 'check_slave_param.inc' are auxiliary files helping to show running status and error information easily.
65 lines
1.8 KiB
Text
65 lines
1.8 KiB
Text
# Test for BUG#26551
|
|
#
|
|
|
|
# This test is unfortunately very fragile and very dependent on the
|
|
# load of the computer. The test is therefore disabled normally. It is
|
|
# entered here to demonstrate how to check that the bug is actually
|
|
# solved.
|
|
|
|
--echo Turn on parsing to run this test
|
|
|
|
disable_parsing;
|
|
|
|
source include/master-slave.inc;
|
|
|
|
connection master;
|
|
CREATE TABLE t1 (data LONGBLOB) ENGINE=MYISAM;
|
|
CREATE TABLE t2 (data LONGBLOB) ENGINE=MYISAM;
|
|
|
|
INSERT INTO t1 (data) VALUES (repeat('a',1024*1024));
|
|
INSERT INTO t1 SELECT * FROM t1;
|
|
INSERT INTO t1 SELECT * FROM t1;
|
|
INSERT INTO t1 SELECT * FROM t1;
|
|
INSERT INTO t1 SELECT * FROM t1;
|
|
INSERT INTO t1 SELECT * FROM t1;
|
|
INSERT INTO t1 SELECT * FROM t1;
|
|
INSERT INTO t1 SELECT * FROM t1;
|
|
INSERT INTO t1 SELECT * FROM t1;
|
|
sync_slave_with_master;
|
|
|
|
connection master;
|
|
send INSERT INTO t2 SELECT * FROM t1;
|
|
|
|
connection master1;
|
|
|
|
# This sleep is picked so that the query above has started to insert
|
|
# some rows into t2. If it hasn't the slave will not stop below.
|
|
let $wait_condition= SELECT COUNT(*) > 1000 FROM t1;
|
|
source include/wait_condition.inc
|
|
|
|
# SHOW PROCESSLIST;
|
|
|
|
# Code for the 5.1 server to get the thread id of the thread executing
|
|
# the query above.
|
|
#
|
|
#SET @id = 0;
|
|
#SELECT id INTO @id
|
|
# FROM information_schema.processlist
|
|
# WHERE info LIKE 'INSERT INTO t2%';
|
|
|
|
# This is the connection that is executing the INSERT INTO t2...
|
|
KILL QUERY 2;
|
|
|
|
connection slave;
|
|
|
|
# Here the slave will only stop if the query above actually started
|
|
# inserting some rows into t2. Otherwise, it will hang forever. ... and there
|
|
# the error code should be 1317 (ER_QUERY_INTERRUPTED)
|
|
--let $slave_sql_errno= 1317
|
|
--let $show_slave_sql_error= 1
|
|
--source include/wait_for_slave_sql_error.inc
|
|
|
|
# The following should be 0
|
|
SELECT COUNT(*) FROM t2;
|
|
|
|
enable_parsing;
|