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

« back to all changes in this revision

Viewing changes to mysql-test/suite/innodb/r/innodb_replace.result

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2012-02-22 08:30:45 UTC
  • mfrom: (1.4.1)
  • Revision ID: package-import@ubuntu.com-20120222083045-2rd53r4bnyx7qus4
Tags: 5.1.61-0ubuntu0.11.04.1
* SECURITY UPDATE: Update to 5.1.61 to fix multiple security issues
  (LP: #937869)
  - http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html
  - CVE-2011-2262
  - CVE-2012-0075
  - CVE-2012-0112
  - CVE-2012-0113
  - CVE-2012-0114
  - CVE-2012-0115
  - CVE-2012-0116
  - CVE-2012-0117
  - CVE-2012-0118
  - CVE-2012-0119
  - CVE-2012-0120
  - CVE-2012-0484
  - CVE-2012-0485
  - CVE-2012-0486
  - CVE-2012-0487
  - CVE-2012-0488
  - CVE-2012-0489
  - CVE-2012-0490
  - CVE-2012-0491
  - CVE-2012-0492
  - CVE-2012-0493
  - CVE-2012-0494
  - CVE-2012-0495
  - CVE-2012-0496

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#
 
2
#Bug#11759688 52020: InnoDB can still deadlock
 
3
#on just INSERT...ON DUPLICATE KEY
 
4
#a.k.a. Bug#7975 deadlock without any locking, simple select and update
 
5
#
 
6
CREATE TABLE t1 (a INT PRIMARY KEY, b INT NOT NULL) ENGINE=InnoDB;
 
7
INSERT INTO t1 VALUES(3,1);
 
8
BEGIN;
 
9
SET DEBUG_SYNC='write_row_noreplace SIGNAL insert1 WAIT_FOR select1';
 
10
INSERT INTO t1 VALUES(3,2);
 
11
SET DEBUG_SYNC='now WAIT_FOR insert1';
 
12
SELECT * FROM t1 LOCK IN SHARE MODE;
 
13
a       b
 
14
3       1
 
15
SELECT * FROM t1 FOR UPDATE;
 
16
SET DEBUG_SYNC='now SIGNAL select1';
 
17
ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
 
18
INSERT INTO t1 VALUES(3,3) ON DUPLICATE KEY UPDATE b=b+10;
 
19
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
 
20
COMMIT;
 
21
SET DEBUG_SYNC='write_row_replace SIGNAL insert2 WAIT_FOR select2';
 
22
REPLACE INTO t1 VALUES(3,4);
 
23
SET DEBUG_SYNC='now WAIT_FOR insert2';
 
24
SELECT * FROM t1;
 
25
a       b
 
26
3       11
 
27
SELECT * FROM t1 LOCK IN SHARE MODE;
 
28
SET DEBUG_SYNC='now SIGNAL select2';
 
29
SET DEBUG_SYNC='write_row_replace SIGNAL insert3 WAIT_FOR select3';
 
30
INSERT INTO t1 VALUES(3,5) ON DUPLICATE KEY UPDATE b=b+20;
 
31
a       b
 
32
3       4
 
33
SET DEBUG_SYNC='now WAIT_FOR insert3';
 
34
SELECT b FROM t1 LOCK IN SHARE MODE;
 
35
SET DEBUG_SYNC='now SIGNAL select3';
 
36
b
 
37
24
 
38
SET DEBUG_SYNC='write_row_noreplace SIGNAL insert4 WAIT_FOR select4';
 
39
LOAD DATA INFILE '../../std_data/loaddata5.dat' INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (a, b);
 
40
SET DEBUG_SYNC='now WAIT_FOR insert4';
 
41
SELECT b FROM t1 WHERE a=3 LOCK IN SHARE MODE;
 
42
b
 
43
24
 
44
SELECT b FROM t1 WHERE a=3 FOR UPDATE;
 
45
SET DEBUG_SYNC='now SIGNAL select4';
 
46
b
 
47
24
 
48
ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
 
49
SET DEBUG_SYNC='write_row_noreplace SIGNAL insert5 WAIT_FOR select5';
 
50
LOAD DATA INFILE '../../std_data/loaddata5.dat' IGNORE INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (a, b);
 
51
SET DEBUG_SYNC='now WAIT_FOR insert5';
 
52
SELECT * FROM t1;
 
53
a       b
 
54
3       24
 
55
SELECT * FROM t1 WHERE a=3 LOCK IN SHARE MODE;
 
56
a       b
 
57
3       24
 
58
SELECT * FROM t1 WHERE a=3 FOR UPDATE;
 
59
SET DEBUG_SYNC='now SIGNAL select5';
 
60
a       b
 
61
3       24
 
62
SET DEBUG_SYNC='write_row_replace SIGNAL insert6 WAIT_FOR select6';
 
63
LOAD DATA INFILE '../../std_data/loaddata5.dat' REPLACE INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (a, b);
 
64
SET DEBUG_SYNC='now WAIT_FOR insert6';
 
65
SELECT * FROM t1;
 
66
a       b
 
67
1       2
 
68
3       24
 
69
5       6
 
70
SELECT a,b FROM t1 LOCK IN SHARE MODE;
 
71
SET DEBUG_SYNC='now SIGNAL select6';
 
72
a       b
 
73
1       2
 
74
3       4
 
75
5       6
 
76
SET DEBUG_SYNC='RESET';
 
77
DROP TABLE t1;