mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
07b9358860
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
19 lines
563 B
Text
19 lines
563 B
Text
#
|
|
# Bug#42101 Race condition in innodb_commit_concurrency
|
|
# http://bugs.mysql.com/42101
|
|
#
|
|
|
|
-- source include/have_innodb.inc
|
|
|
|
--error ER_WRONG_ARGUMENTS
|
|
set global innodb_commit_concurrency=0;
|
|
select @@innodb_commit_concurrency;
|
|
set global innodb_commit_concurrency=1;
|
|
select @@innodb_commit_concurrency;
|
|
set global innodb_commit_concurrency=42;
|
|
select @@innodb_commit_concurrency;
|
|
--error ER_WRONG_ARGUMENTS
|
|
set global innodb_commit_concurrency=0;
|
|
select @@innodb_commit_concurrency;
|
|
set global innodb_commit_concurrency=1;
|
|
select @@innodb_commit_concurrency;
|