~ubuntu-branches/ubuntu/precise/mysql-5.1/precise

« back to all changes in this revision

Viewing changes to mysql-test/t/flush.test

  • Committer: Bazaar Package Importer
  • Author(s): Norbert Tretkowski
  • Date: 2010-03-17 14:56:02 UTC
  • Revision ID: james.westby@ubuntu.com-20100317145602-x7e30l1b2sb5s6w6
Tags: upstream-5.1.45
ImportĀ upstreamĀ versionĀ 5.1.45

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
connect (con1,localhost,root,,);
 
2
connect (con2,localhost,root,,);
 
3
connection con1;
 
4
 
 
5
--disable_warnings
 
6
drop table if exists t1,t2;
 
7
drop database if exists mysqltest;
 
8
--enable_warnings
 
9
 
 
10
create temporary table t1(n int not null primary key);
 
11
create table t2(n int);
 
12
insert into t2 values(3);
 
13
let $1=100;
 
14
disable_query_log;
 
15
while ($1)
 
16
{
 
17
 connection con1;
 
18
 send replace into t1 select n from t2;
 
19
 connection con2;
 
20
 send flush tables;
 
21
 connection con1;
 
22
 reap;
 
23
 connection con2;
 
24
 reap;
 
25
 dec $1;
 
26
}
 
27
enable_query_log;
 
28
connection con1;
 
29
select * from t1;
 
30
connection con2;
 
31
flush tables with read lock;
 
32
--error 1223
 
33
drop table t2;
 
34
connection con1;
 
35
send drop table t2;
 
36
connection con2;
 
37
unlock tables;
 
38
connection con1;
 
39
reap;
 
40
 
 
41
#test if drop database will wait until we release the global read lock
 
42
connection con1;
 
43
create database mysqltest;
 
44
create table mysqltest.t1(n int);
 
45
insert into mysqltest.t1 values (23);
 
46
flush tables with read lock;
 
47
connection con2;
 
48
send drop database mysqltest;
 
49
connection con1;
 
50
select * from mysqltest.t1;
 
51
unlock tables;
 
52
connection con2;
 
53
reap;
 
54
 
 
55
# test if dirty close releases global read lock
 
56
connection con1;
 
57
create table t1 (n int);
 
58
flush tables with read lock;
 
59
dirty_close con1;
 
60
connection con2;
 
61
insert into t1 values (345);
 
62
select * from t1;
 
63
drop table t1;
 
64
 
 
65
#
 
66
# Bug#9459 - deadlock with flush with lock, and lock table write
 
67
#
 
68
create table t1 (c1 int);
 
69
lock table t1 write;
 
70
# Cannot get the global read lock with write locked tables.
 
71
--error 1192
 
72
flush tables with read lock;
 
73
lock table t1 read;
 
74
# Can get the global read lock with read locked tables.
 
75
flush tables with read lock;
 
76
--error 1223
 
77
lock table t1 write;
 
78
lock table t1 read;
 
79
--error 1223
 
80
lock table t1 write;
 
81
# Release all table locks and the global read lock.
 
82
unlock tables;
 
83
create table t2 (c1 int);
 
84
create table t3 (c1 int);
 
85
lock table t1 read, t2 read, t3 write;
 
86
# Cannot get the global read lock with write locked tables.
 
87
--error 1192
 
88
flush tables with read lock;
 
89
lock table t1 read, t2 read, t3 read;
 
90
# Can get the global read lock with read locked tables.
 
91
flush tables with read lock;
 
92
# Release all table locks and the global read lock.
 
93
unlock tables;
 
94
drop table t1, t2, t3;
 
95
 
 
96
# End of 4.1 tests
 
97
 
 
98
#
 
99
# Test of deadlock problem when doing FLUSH TABLE with read lock
 
100
# (Bug was in NTPL threads in Linux when using different mutex while
 
101
#  waiting for a condtion variable)
 
102
 
 
103
create table t1 (c1 int);
 
104
create table t2 (c1 int);
 
105
 
 
106
connect (con1,localhost,root,,);
 
107
connect (con3,localhost,root,,);
 
108
 
 
109
connection con1;
 
110
lock table t1 write;
 
111
 
 
112
connection con2;
 
113
send flush tables with read lock;
 
114
--sleep 1
 
115
 
 
116
connection con3;
 
117
send insert into t2 values(1);
 
118
--sleep 1
 
119
 
 
120
connection con1;
 
121
unlock tables;
 
122
disconnect con1;
 
123
 
 
124
connection con2;
 
125
reap;
 
126
disconnect con2;
 
127
 
 
128
connection con3;
 
129
# It hangs here (insert into t2 does not end).
 
130
reap;
 
131
disconnect con3;
 
132
 
 
133
connection default;
 
134
drop table t1, t2;
 
135
 
 
136
#
 
137
# Bug#32528 Global read lock with a low priority write lock causes a server crash
 
138
#
 
139
 
 
140
--disable_warnings
 
141
drop table if exists t1, t2;
 
142
--enable_warnings
 
143
 
 
144
set session low_priority_updates=1;
 
145
 
 
146
create table t1 (a int);
 
147
create table t2 (b int);
 
148
 
 
149
lock tables t1 write;
 
150
--error ER_LOCK_OR_ACTIVE_TRANSACTION
 
151
flush tables with read lock;
 
152
unlock tables;
 
153
 
 
154
lock tables t1 read, t2 write;
 
155
--error ER_LOCK_OR_ACTIVE_TRANSACTION
 
156
flush tables with read lock;
 
157
unlock tables;
 
158
 
 
159
lock tables t1 read;
 
160
flush tables with read lock;
 
161
unlock tables;
 
162
 
 
163
drop table t1, t2;
 
164
 
 
165
set session low_priority_updates=default;
 
166
 
 
167
#
 
168
# Bug #33334 mysqltest_embedded crashes when disconnecting before reap
 
169
#
 
170
 
 
171
connect (con1,localhost,root,,);
 
172
send select benchmark(200, (select sin(1))) > 1000;
 
173
disconnect con1;
 
174
--source include/wait_until_disconnected.inc
 
175
connection default;
 
176
 
 
177
--echo End of 5.0 tests
 
178
 
 
179
#
 
180
# Bug #26380: LOCK TABLES + FLUSH LOGS causes deadlock
 
181
#
 
182
set @old_general_log= @@general_log;
 
183
set @old_read_only= @@read_only;
 
184
set global general_log= on;
 
185
 
 
186
flush tables with read lock;
 
187
flush logs;
 
188
unlock tables;
 
189
 
 
190
set global read_only=1;
 
191
flush logs;
 
192
unlock tables;
 
193
 
 
194
flush tables with read lock;
 
195
flush logs;
 
196
unlock tables;
 
197
 
 
198
set global general_log= @old_general_log;
 
199
set global read_only= @old_read_only;
 
200
 
 
201
--echo End of 5.1 tests