~ubuntu-branches/ubuntu/lucid/mysql-dfsg-5.1/lucid-security

« back to all changes in this revision

Viewing changes to mysql-test/suite/innodb/t/innodb_trx_weight.test

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2012-02-22 22:33:55 UTC
  • mfrom: (1.1.5)
  • Revision ID: package-import@ubuntu.com-20120222223355-or06x1euyk8n0ldi
Tags: 5.1.61-0ubuntu0.10.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
* Dropped patches unnecessary with 5.1.61:
  - debian/patches/90_mysql_safer_strmov.dpatch
  - debian/patches/51_ssl_test_certs.dpatch
  - debian/patches/52_CVE-2009-4030.dpatch
  - debian/patches/53_CVE-2009-4484.dpatch
  - debian/patches/54_CVE-2008-7247.dpatch
  - debian/patches/55_CVE-2010-1621.dpatch
  - debian/patches/56_CVE-2010-1850.dpatch
  - debian/patches/57_CVE-2010-1849.dpatch
  - debian/patches/58_CVE-2010-1848.dpatch
  - debian/patches/59_CVE-2010-1626.dpatch
  - debian/patches/60_CVE-2010-2008.dpatch
  - debian/patches/60_CVE-2010-3677.dpatch
  - debian/patches/60_CVE-2010-3678.dpatch
  - debian/patches/60_CVE-2010-3679.dpatch
  - debian/patches/60_CVE-2010-3680.dpatch
  - debian/patches/60_CVE-2010-3681.dpatch
  - debian/patches/60_CVE-2010-3682.dpatch
  - debian/patches/60_CVE-2010-3683.dpatch
  - debian/patches/60_CVE-2010-3833.dpatch
  - debian/patches/60_CVE-2010-3834.dpatch
  - debian/patches/60_CVE-2010-3835.dpatch
  - debian/patches/60_CVE-2010-3836.dpatch
  - debian/patches/60_CVE-2010-3837.dpatch
  - debian/patches/60_CVE-2010-3838.dpatch
  - debian/patches/60_CVE-2010-3839.dpatch
  - debian/patches/60_CVE-2010-3840.dpatch
  - debian/patches/61_disable_longfilename_test.dpatch
  - debian/patches/62_alter_table_fix.dpatch
  - debian/patches/63_cherrypick-upstream-49479.dpatch
  - debian/patches/10_readline_build_fix.dpatch
* debian/mysql-client-5.1.docs: removed EXCEPTIONS-CLIENT file
* debian/mysql-server-5.1.docs,debian/libmysqlclient16.docs,
  debian/libmysqlclient-dev.docs: removed, no longer necessary.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#
 
2
# Ensure that the number of locks (SELECT FOR UPDATE for example) is
 
3
# added to the number of altered rows when choosing the smallest
 
4
# transaction to kill as a victim when a deadlock is detected.
 
5
# Also transactions what had edited non-transactional tables should
 
6
# be heavier than ones that had not.
 
7
#
 
8
 
 
9
-- source include/have_innodb.inc
 
10
 
 
11
SET storage_engine=InnoDB;
 
12
 
 
13
# we do not really care about what gets printed, we are only
 
14
# interested in getting the deadlock resolved according to our
 
15
# expectations
 
16
-- disable_query_log
 
17
-- disable_result_log
 
18
 
 
19
# we want to use "-- eval statement1; statement2" which does not work with
 
20
# prepared statements. Because this test should not behave differently with
 
21
# or without prepared statements we disable them so the test does not fail
 
22
# if someone runs ./mysql-test-run.pl --ps-protocol
 
23
-- disable_ps_protocol
 
24
 
 
25
-- disable_warnings
 
26
DROP TABLE IF EXISTS t1, t2, t3, t4, t5_nontrans;
 
27
-- enable_warnings
 
28
 
 
29
# we will create a simple deadlock with t1, t2 and two connections
 
30
CREATE TABLE t1 (a INT);
 
31
CREATE TABLE t2 (a INT);
 
32
 
 
33
# auxiliary table with a bulk of rows which will be locked by a
 
34
# transaction to increase its weight
 
35
CREATE TABLE t3 (a INT);
 
36
 
 
37
# auxiliary empty table which will be inserted by a
 
38
# transaction to increase its weight
 
39
CREATE TABLE t4 (a INT);
 
40
 
 
41
# auxiliary non-transactional table which will be edited by a
 
42
# transaction to tremendously increase its weight
 
43
CREATE TABLE t5_nontrans (a INT) ENGINE=MyISAM;
 
44
 
 
45
INSERT INTO t1 VALUES (1);
 
46
INSERT INTO t2 VALUES (1);
 
47
# insert a lot of rows in t3
 
48
INSERT INTO t3 VALUES (1);
 
49
INSERT INTO t3 SELECT * FROM t3;
 
50
INSERT INTO t3 SELECT * FROM t3;
 
51
INSERT INTO t3 SELECT * FROM t3;
 
52
INSERT INTO t3 SELECT * FROM t3;
 
53
INSERT INTO t3 SELECT * FROM t3;
 
54
INSERT INTO t3 SELECT * FROM t3;
 
55
INSERT INTO t3 SELECT * FROM t3;
 
56
INSERT INTO t3 SELECT * FROM t3;
 
57
INSERT INTO t3 SELECT * FROM t3;
 
58
INSERT INTO t3 SELECT * FROM t3;
 
59
INSERT INTO t3 SELECT * FROM t3;
 
60
 
 
61
# test locking weight
 
62
 
 
63
-- let $con1_extra_sql =
 
64
-- let $con1_extra_sql_present = 0
 
65
-- let $con2_extra_sql = SELECT * FROM t3 FOR UPDATE
 
66
-- let $con2_extra_sql_present = 1
 
67
-- let $con1_should_be_rolledback = 1
 
68
-- source include/innodb_trx_weight.inc
 
69
 
 
70
-- let $con1_extra_sql = INSERT INTO t4 VALUES (1), (1)
 
71
-- let $con1_extra_sql_present = 1
 
72
-- let $con2_extra_sql = SELECT * FROM t3 FOR UPDATE
 
73
-- let $con2_extra_sql_present = 1
 
74
-- let $con1_should_be_rolledback = 1
 
75
-- source include/innodb_trx_weight.inc
 
76
 
 
77
-- let $con1_extra_sql = INSERT INTO t4 VALUES (1), (1), (1), (1), (1), (1)
 
78
-- let $con1_extra_sql_present = 1
 
79
-- let $con2_extra_sql = SELECT * FROM t3 FOR UPDATE
 
80
-- let $con2_extra_sql_present = 1
 
81
-- let $con1_should_be_rolledback = 0
 
82
-- source include/innodb_trx_weight.inc
 
83
 
 
84
# test weight when non-transactional tables are edited
 
85
 
 
86
-- let $con1_extra_sql = INSERT INTO t4 VALUES (1), (1), (1)
 
87
-- let $con1_extra_sql_present = 1
 
88
-- let $con2_extra_sql =
 
89
-- let $con2_extra_sql_present = 0
 
90
-- let $con1_should_be_rolledback = 0
 
91
-- source include/innodb_trx_weight.inc
 
92
 
 
93
-- let $con1_extra_sql = INSERT INTO t4 VALUES (1), (1), (1)
 
94
-- let $con1_extra_sql_present = 1
 
95
-- let $con2_extra_sql = INSERT INTO t5_nontrans VALUES (1)
 
96
-- let $con2_extra_sql_present = 1
 
97
-- let $con1_should_be_rolledback = 1
 
98
-- source include/innodb_trx_weight.inc
 
99
 
 
100
-- let $con1_extra_sql = INSERT INTO t4 VALUES (1), (1), (1)
 
101
-- let $con1_extra_sql = $con1_extra_sql; INSERT INTO t5_nontrans VALUES (1)
 
102
-- let $con1_extra_sql_present = 1
 
103
-- let $con2_extra_sql = INSERT INTO t5_nontrans VALUES (1)
 
104
-- let $con2_extra_sql_present = 1
 
105
-- let $con1_should_be_rolledback = 0
 
106
-- source include/innodb_trx_weight.inc
 
107
 
 
108
DROP TABLE t1, t2, t3, t4, t5_nontrans;