~maria-captains/maria/mysql-6.0-backup

« back to all changes in this revision

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

  • Committer: Thava Alagu
  • Date: 2010-03-11 19:18:17 UTC
  • mfrom: (3719.14.62 mysql-6.0-codebase)
  • Revision ID: thavamuni.alagu@sun.com-20100311191817-5nigmq884xo9fuut
Merge from mysql-6.0-codebase

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
-- source include/have_log_bin.inc
 
2
-- source include/have_innodb.inc
 
3
-- source include/not_binlog_format_row.inc
 
4
 
 
5
--echo #
 
6
--echo # Bug #39022: Mysql randomly crashing in lock_sec_rec_cons_read_sees
 
7
--echo #
 
8
 
 
9
CREATE TABLE t1(a TINYINT NOT NULL,b TINYINT,PRIMARY KEY(b)) ENGINE=innodb;
 
10
CREATE TABLE t2(d TINYINT NOT NULL,UNIQUE KEY(d)) ENGINE=innodb;
 
11
INSERT INTO t1 VALUES (13,0),(8,1),(9,2),(6,3),
 
12
(11,5),(11,6),(7,7),(7,8),(4,9),(6,10),(3,11),(11,12),
 
13
(12,13),(7,14);
 
14
INSERT INTO t2 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),
 
15
(11),(12),(13),(14);
 
16
 
 
17
connect (thread1, localhost, root,,);
 
18
connect (thread2, localhost, root,,);
 
19
 
 
20
connection thread1;
 
21
--echo # in thread1
 
22
START TRANSACTION;
 
23
 
 
24
connection thread2;
 
25
--echo # in thread2
 
26
REPLACE INTO t2 VALUES (-17);
 
27
SELECT d FROM t2,t1 WHERE d=(SELECT MAX(a) FROM t1 WHERE t1.a > t2.d);
 
28
 
 
29
connection thread1;
 
30
--echo # in thread1
 
31
REPLACE INTO t1(a,b) VALUES (67,20);
 
32
 
 
33
connection thread2;
 
34
--echo # in thread2
 
35
COMMIT;
 
36
START TRANSACTION;
 
37
REPLACE INTO t1(a,b) VALUES (65,-50);
 
38
REPLACE INTO t2 VALUES (-91);
 
39
send;
 
40
SELECT d FROM t2,t1 WHERE d=(SELECT MAX(a) FROM t1 WHERE t1.a > t2.d); #waits
 
41
 
 
42
connection thread1;
 
43
--echo # in thread1
 
44
 
 
45
--echo # should not crash
 
46
--error ER_LOCK_DEADLOCK
 
47
SELECT d FROM t2,t1 WHERE d=(SELECT MAX(a) FROM t1 WHERE t1.a > t2.d); #crashes
 
48
 
 
49
connection thread2;
 
50
--echo # in thread2
 
51
REAP;
 
52
 
 
53
disconnect thread2;
 
54
--source include/wait_until_disconnected.inc
 
55
 
 
56
connection thread1;
 
57
--echo # in thread1;
 
58
disconnect thread1;
 
59
--source include/wait_until_disconnected.inc
 
60
 
 
61
connection default;
 
62
 
 
63
DROP TABLE t1,t2;