~ubuntu-branches/ubuntu/maverick/mysql-5.1/maverick-proposed

« back to all changes in this revision

Viewing changes to mysql-test/suite/rpl/t/rpl_stm_000001.test

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2012-02-22 14:16:05 UTC
  • mto: This revision was merged to the branch mainline in revision 20.
  • Revision ID: package-import@ubuntu.com-20120222141605-nxlu9yzc6attylc2
Tags: upstream-5.1.61
ImportĀ upstreamĀ versionĀ 5.1.61

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
let $engine_type=myisam;
 
1
# Requires binlog_format=statement format since query involving
 
2
# get_lock() is logged in row format if binlog_format=mixed or row.
 
3
-- source include/have_binlog_format_statement.inc
 
4
-- source include/master-slave.inc
 
5
 
 
6
--let $engine_type= myisam
 
7
CALL mtr.add_suppression("Statement may not be safe to log in statement format.");
 
8
 
 
9
# Load some data into t1
 
10
create table t1 (word char(20) not null);
 
11
load data infile '../../std_data/words.dat' into table t1;
 
12
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
 
13
eval load data local infile '$MYSQL_TEST_DIR/std_data/words.dat' into table t1;
 
14
select * from t1 limit 10;
 
15
 
 
16
#
 
17
# Test slave with wrong password
 
18
#
 
19
sync_slave_with_master;
 
20
stop slave;
 
21
connection master;
 
22
set password for root@"localhost" = password('foo');
 
23
connection slave;
 
24
start slave;
 
25
connection master;
 
26
#
 
27
# Give slave time to do at last one failed connect retry
 
28
# This one must be short so that the slave will not stop retrying
 
29
real_sleep 2;
 
30
set password for root@"localhost" = password('');
 
31
# Give slave time to connect (will retry every second)
 
32
sleep 2;
 
33
 
 
34
create table t3(n int);
 
35
insert into t3 values(1),(2);
 
36
sync_slave_with_master;
 
37
select * from t3;
 
38
select sum(length(word)) from t1;
 
39
connection master;
 
40
drop table t1,t3;
 
41
sync_slave_with_master;
 
42
 
 
43
# Test if the slave SQL thread can be more than 16K behind the slave
 
44
# I/O thread (> IO_SIZE)
 
45
 
 
46
connection master;
 
47
# we'll use table-level locking to delay slave SQL thread
 
48
eval create table t1 (n int) engine=$engine_type;
 
49
sync_slave_with_master;
 
50
connection master;
 
51
reset master;
 
52
connection slave;
 
53
stop slave;
 
54
reset slave;
 
55
 
 
56
connection master;
 
57
let $1=5000;
 
58
# Generate 16K of relay log
 
59
disable_query_log;
 
60
while ($1)
 
61
{
 
62
 eval insert into t1 values($1);
 
63
 dec $1;
 
64
}
 
65
enable_query_log;
 
66
 
 
67
# Try to cause a large relay log lag on the slave by locking t1
 
68
connection slave;
 
69
lock tables t1 read;
 
70
start slave;
 
71
#hope this is long enough for I/O thread to fetch over 16K relay log data
 
72
sleep 3;
 
73
unlock tables;
 
74
 
 
75
#test handling of aborted connection in the middle of update
 
76
 
 
77
connection master;
 
78
create table t2(id int);
 
79
insert into t2 values(connection_id());
 
80
 
 
81
connection master1;
 
82
# Avoid generating result
 
83
create temporary table t3(n int);
 
84
--disable_warnings
 
85
insert into t3 select get_lock('crash_lock%20C', 1) from t2;
 
86
--enable_warnings
 
87
 
 
88
connection master;
 
89
send update t1 set n = n + get_lock('crash_lock%20C', 2);
 
90
connection master1;
 
91
sleep 3;
 
92
select (@id := id) - id from t2;
 
93
kill @id;
 
94
# We don't drop t3 as this is a temporary table
 
95
drop table t2;
 
96
connection master;
 
97
# The get_lock function causes warning for unsafe statement.
 
98
--disable_warnings
 
99
--error 1317,2013
 
100
reap;
 
101
--enable_warnings
 
102
connection slave;
 
103
# The SQL slave thread should now have stopped because the query was killed on
 
104
# the master (so it has a non-zero error code in the binlog).
 
105
# 1053 = ER_SERVER_SHUTDOWN
 
106
--let $slave_sql_errno= 1053
 
107
--source include/wait_for_slave_sql_error_and_skip.inc
 
108
 
 
109
select count(*) from t1;
 
110
connection master1;
 
111
drop table t1;
 
112
create table t1 (n int);
 
113
insert into t1 values(3456);
 
114
insert into mysql.user (Host, User, Password)
 
115
 VALUES ("10.10.10.%", "blafasel2", password("blafasel2"));
 
116
select select_priv,user from mysql.user where user = _binary'blafasel2';
 
117
update mysql.user set Select_priv = "Y" where User= _binary"blafasel2";
 
118
select select_priv,user from mysql.user where user = _binary'blafasel2';
 
119
sync_slave_with_master;
 
120
select n from t1;
 
121
select select_priv,user from mysql.user where user = _binary'blafasel2';
 
122
connection master1;
 
123
drop table t1;
 
124
delete from mysql.user where user="blafasel2";
 
125
sync_slave_with_master;
 
126
 
 
127
# End of 4.1 tests
 
128
--source include/rpl_end.inc