diff options
author | Satya B <satya.bn@sun.com> | 2009-05-19 13:50:28 +0530 |
---|---|---|
committer | Satya B <satya.bn@sun.com> | 2009-05-19 13:50:28 +0530 |
commit | 07b93588609d8b5c2db72b61e61a8a2a70281175 (patch) | |
tree | fc67aa02f947fd197d2ff57f74f397207f8cabdc /mysql-test/t/innodb_bug42101.test | |
parent | 65eac15004f2f455182dc09e100bacca21afaa36 (diff) | |
download | mariadb-git-07b93588609d8b5c2db72b61e61a8a2a70281175.tar.gz |
Applying InnoDB snashot 5.1-ss5024,part 3. Fixes BUG#42101
BUG#42101 - Race condition in innodb_commit_concurrency
Detailed revision comments:
r4994 | marko | 2009-05-14 15:04:55 +0300 (Thu, 14 May 2009) | 18 lines
branches/5.1: Prevent a race condition in innobase_commit() by ensuring
that innodb_commit_concurrency>0 remains constant at run time. (Bug #42101)
srv_commit_concurrency: Make this a static variable in ha_innodb.cc.
innobase_commit_concurrency_validate(): Check that innodb_commit_concurrency
is not changed from or to 0 at run time. This is needed, because
innobase_commit() assumes that innodb_commit_concurrency>0 remains constant.
Without this limitation, the checks for innodb_commit_concurrency>0
in innobase_commit() should be removed and that function would have to
acquire and release commit_cond_m at least twice per invocation.
Normally, innodb_commit_concurrency=0, and introducing the mutex operations
would mean significant overhead.
innodb_bug42101.test, innodb_bug42101-nonzero.test: Test cases.
rb://123 approved by Heikki Tuuri
Diffstat (limited to 'mysql-test/t/innodb_bug42101.test')
-rw-r--r-- | mysql-test/t/innodb_bug42101.test | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/mysql-test/t/innodb_bug42101.test b/mysql-test/t/innodb_bug42101.test new file mode 100644 index 00000000000..13d531ecde7 --- /dev/null +++ b/mysql-test/t/innodb_bug42101.test @@ -0,0 +1,17 @@ +# +# Bug#42101 Race condition in innodb_commit_concurrency +# http://bugs.mysql.com/42101 +# + +-- source include/have_innodb.inc + +set global innodb_commit_concurrency=0; +select @@innodb_commit_concurrency; +--error ER_WRONG_ARGUMENTS +set global innodb_commit_concurrency=1; +select @@innodb_commit_concurrency; +--error ER_WRONG_ARGUMENTS +set global innodb_commit_concurrency=42; +select @@innodb_commit_concurrency; +set global innodb_commit_concurrency=0; +select @@innodb_commit_concurrency; |