diff options
author | Sergei Golubchik <sergii@pisem.net> | 2012-08-22 16:45:25 +0200 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2012-08-22 16:45:25 +0200 |
commit | f72a7659976089dc6f727bb31e8a91306199cf57 (patch) | |
tree | 0199cd1bf1c16b01b358ab88e5dce5b038349872 /storage/xtradb/mysql-test/patches/partition_innodb.diff | |
parent | ed06ba3492d55c9e9dde231b55352f854e5e4b50 (diff) | |
parent | 1fd8150a5b5e3f56aa3c253225929a07ee9a4026 (diff) | |
download | mariadb-git-f72a7659976089dc6f727bb31e8a91306199cf57.tar.gz |
5.2 merge.
two tests still fail:
main.innodb_icp and main.range_vs_index_merge_innodb
call records_in_range() with both range ends being open
(which triggers an assert)
Diffstat (limited to 'storage/xtradb/mysql-test/patches/partition_innodb.diff')
-rw-r--r-- | storage/xtradb/mysql-test/patches/partition_innodb.diff | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/storage/xtradb/mysql-test/patches/partition_innodb.diff b/storage/xtradb/mysql-test/patches/partition_innodb.diff new file mode 100644 index 00000000000..01bc073008e --- /dev/null +++ b/storage/xtradb/mysql-test/patches/partition_innodb.diff @@ -0,0 +1,59 @@ +The partition_innodb test only fails if run immediately after innodb_trx_weight. +The reason for this failure is that innodb_trx_weight creates deadlocks and +leaves something like this in the SHOW ENGINE INNODB STATUS output: + + ------------------------ + LATEST DETECTED DEADLOCK + ------------------------ + 090213 10:26:25 + *** (1) TRANSACTION: + TRANSACTION 313, ACTIVE 0 sec, OS thread id 13644672 inserting + mysql tables in use 1, locked 1 + LOCK WAIT 4 lock struct(s), heap size 488, 3 row lock(s) + MySQL thread id 3, query id 36 localhost root update + +The regular expressions that partition_innodb is using are intended to extract +the lock structs and row locks numbers from another part of the output: + + ------------ + TRANSACTIONS + ------------ + Trx id counter 31D + Purge done for trx's n:o < 0 undo n:o < 0 + History list length 4 + LIST OF TRANSACTIONS FOR EACH SESSION: + ---TRANSACTION 0, not started, OS thread id 13645056 + 0 lock struct(s), heap size 488, 0 row lock(s) + MySQL thread id 8, query id 81 localhost root + +In the InnoDB Plugin a transaction id is not printed as 2 consecutive +decimal integers (as it is in InnoDB 5.1) but rather as a single +hexadecimal integer. Thus the regular expressions somehow pick the wrong +part of the SHOW ENGINE INNODB STATUS output. + +So after the regular expressions are adjusted to the InnoDB Plugin's variant +of trx_id prinout, then they pick the expected part of the output. + +This patch cannot be proposed to MySQL because the failures occur only +in this tree and do not occur in the standard InnoDB 5.1. + +--- mysql-test/t/partition_innodb.test 2008-11-14 22:51:17 +0000 ++++ mysql-test/t/partition_innodb.test 2009-02-13 07:36:07 +0000 +@@ -27,14 +27,14 @@ + + # grouping/referencing in replace_regex is very slow on long strings, + # removing all before/after the interesting row before grouping/referencing +---replace_regex /.*---TRANSACTION [0-9]+ [0-9]+, .*, OS thread id [0-9]+// /MySQL thread id [0-9]+, query id [0-9]+ .*// /.*([0-9]+ lock struct\(s\)), heap size [0-9]+, ([0-9]+ row lock\(s\)).*/\1 \2/ ++--replace_regex /.*---TRANSACTION [0-9A-F]+, .*, OS thread id [0-9]+// /MySQL thread id [0-9]+, query id [0-9]+ .*// /.*([0-9]+ lock struct\(s\)), heap size [0-9]+, ([0-9]+ row lock\(s\)).*/\1 \2/ + SHOW ENGINE InnoDB STATUS; + + UPDATE t1 SET data = data*2 WHERE data = 2; + + # grouping/referencing in replace_regex is very slow on long strings, + # removing all before/after the interesting row before grouping/referencing +---replace_regex /.*---TRANSACTION [0-9]+ [0-9]+, .*, OS thread id [0-9]+// /MySQL thread id [0-9]+, query id [0-9]+ .*// /.*([0-9]+ lock struct\(s\)), heap size [0-9]+, ([0-9]+ row lock\(s\)).*/\1 \2/ ++--replace_regex /.*---TRANSACTION [0-9A-F]+, .*, OS thread id [0-9]+// /MySQL thread id [0-9]+, query id [0-9]+ .*// /.*([0-9]+ lock struct\(s\)), heap size [0-9]+, ([0-9]+ row lock\(s\)).*/\1 \2/ + SHOW ENGINE InnoDB STATUS; + + SET @@session.tx_isolation = @old_tx_isolation; + |