Bug #45749 Race condition in SET GLOBAL innodb_commit_concurrency=DEFAULT
Submitted: 25 Jun 2009 11:42 Modified: 18 Jun 2010 23:02
Reporter: Marko Mäkelä Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S1 (Critical)
Version:5.1 OS:Any
Assigned to: Satya B CPU Architecture:Any
Triage: Triaged: D2 (Serious) / R1 (None/Negligible) / E1 (None/Negligible)

[25 Jun 2009 11:42] Marko Mäkelä
Description:
There is a hole in the fix of Bug #42101: The statement
SET GLOBAL innodb_commit_concurrency=DEFAULT;
will set the commit concurrency to 0 when InnoDB was started with innodb_commit_concurrency>0.

How to repeat:
mysqld --innodb_commit_concurrency=1
SELECT @@innodb_commit_concurrency; -- should be 1
SET GLOBAL innodb_commit_concurrency=0; -- fails
SET GLOBAL innodb_commit_concurrency=DEFAULT; -- sets to 0, BUG!
SELECT @@innodb_commit_concurrency; -- should be 1, but is 0

Suggested fix:
Add an _update callback that will ignore the request. Or have MySQL call the _validate callback when setting to DEFAULT value.
[25 Jun 2009 12:11] Marko Mäkelä
The fix is even simpler: assign
	MYSQL_SYSVAR_NAME(commit_concurrency).def_val
		= innobase_commit_concurrency;
before calling innobase_start_or_create_for_mysql(). In that way, the initial value of innodb_commit_concurrency will become the default value.
[10 Jul 2009 10:36] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/78370

3019 Satya B	2009-07-10
      Applying InnoDB snapshot 5.1-ss5488,part 2. Fixes BUG#45749
      
      BUG#45749 - Race condition in SET GLOBAL innodb_commit_concurrency=DEFAULT
      
      Detailed revision comments:
      
      r5419 | marko | 2009-06-25 16:11:57 +0300 (Thu, 25 Jun 2009) | 18 lines
      branches/5.1: Merge r5418 from branches/zip:
      
        ------------------------------------------------------------------------
        r5418 | marko | 2009-06-25 15:55:52 +0300 (Thu, 25 Jun 2009) | 5 lines
        Changed paths:
           M /branches/zip/ChangeLog
           M /branches/zip/handler/ha_innodb.cc
           M /branches/zip/mysql-test/innodb_bug42101-nonzero.result
           M /branches/zip/mysql-test/innodb_bug42101-nonzero.test
           M /branches/zip/mysql-test/innodb_bug42101.result
           M /branches/zip/mysql-test/innodb_bug42101.test
        
        branches/zip: Fix a race condition caused by
        SET GLOBAL innodb_commit_concurrency=DEFAULT. (Bug #45749)
        When innodb_commit_concurrency is initially set nonzero,
        DEFAULT would change it back to 0, triggering Bug #42101.
        rb://139 approved by Heikki Tuuri.
        ------------------------------------------------------------------------
      modified:
        mysql-test/r/innodb_bug42101-nonzero.result
        mysql-test/r/innodb_bug42101.result
        mysql-test/t/innodb_bug42101-nonzero.test
        mysql-test/t/innodb_bug42101.test
        storage/innobase/handler/ha_innodb.cc
[10 Jul 2009 12:08] Satya B
patch queued to 5.1-bugteam
[13 Jul 2009 17:48] Bugs System
Pushed into 5.1.37 (revid:joro@sun.com-20090713174543-cd2x7q1gi1hzoand) (version source revid:staale.smedseng@sun.com-20090710151930-6e6kq5tp7ux1rtbh) (merge vers: 5.1.37) (pib:11)
[13 Jul 2009 19:20] Paul Dubois
Noted in 5.1.37 changelog.

There was a race condition when changing innodb_commit_concurrency at
runtime to the value DEFAULT. 

Setting report to NDI pending push into 5.4.x.
[4 Aug 2009 19:49] Bugs System
Pushed into 5.4.4-alpha (revid:alik@sun.com-20090804194615-h40sa098mx4z49qg) (version source revid:satya.bn@sun.com-20090710114411-lthb9gmm9l2ui9ig) (merge vers: 5.4.4-alpha) (pib:11)
[4 Aug 2009 23:57] Paul Dubois
Noted in 5.4.4 changelog.
[12 Aug 2009 22:15] Paul Dubois
Noted in 5.4.2 changelog because next 5.4 version will be 5.4.2 and not 5.4.4.
[14 Aug 2009 23:04] Paul Dubois
Ignore previous comment about 5.4.2.
[26 Aug 2009 13:45] Bugs System
Pushed into 5.1.37-ndb-7.0.8 (revid:jonas@mysql.com-20090826132541-yablppc59e3yb54l) (version source revid:jonas@mysql.com-20090826132541-yablppc59e3yb54l) (merge vers: 5.1.37-ndb-7.0.8) (pib:11)
[26 Aug 2009 13:46] Bugs System
Pushed into 5.1.37-ndb-6.3.27 (revid:jonas@mysql.com-20090826105955-bkj027t47gfbamnc) (version source revid:jonas@mysql.com-20090826105955-bkj027t47gfbamnc) (merge vers: 5.1.37-ndb-6.3.27) (pib:11)
[26 Aug 2009 13:48] Bugs System
Pushed into 5.1.37-ndb-6.2.19 (revid:jonas@mysql.com-20090825194404-37rtosk049t9koc4) (version source revid:jonas@mysql.com-20090825194404-37rtosk049t9koc4) (merge vers: 5.1.37-ndb-6.2.19) (pib:11)
[27 Aug 2009 16:32] Bugs System
Pushed into 5.1.35-ndb-7.1.0 (revid:magnus.blaudd@sun.com-20090827163030-6o3kk6r2oua159hr) (version source revid:jonas@mysql.com-20090826132541-yablppc59e3yb54l) (merge vers: 5.1.37-ndb-7.0.8) (pib:11)
[7 Oct 2009 18:28] Paul Dubois
The 5.4 fix has been pushed to 5.4.2.
[5 May 2010 15:02] Bugs System
Pushed into 5.1.47 (revid:joro@sun.com-20100505145753-ivlt4hclbrjy8eye) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[6 May 2010 17:47] Paul Dubois
Push resulted from incorporation of InnoDB tree. No changes pertinent to this bug.
Re-closing.
[28 May 2010 5:45] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100524190136-egaq7e8zgkwb9aqi) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (pib:16)
[28 May 2010 6:15] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100524190941-nuudpx60if25wsvx) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[28 May 2010 6:43] Bugs System
Pushed into 5.5.5-m3 (revid:alik@sun.com-20100524185725-c8k5q7v60i5nix3t) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[29 May 2010 15:18] Paul Dubois
Push resulted from incorporation of InnoDB tree. No changes pertinent to this bug.
Re-closing.
[15 Jun 2010 8:08] Bugs System
Pushed into 5.5.5-m3 (revid:alik@sun.com-20100615080459-smuswd9ooeywcxuc) (version source revid:mmakela@bk-internal.mysql.com-20100415070122-1nxji8ym4mao13ao) (merge vers: 5.1.47) (pib:16)
[15 Jun 2010 8:23] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100615080558-cw01bzdqr1bdmmec) (version source revid:mmakela@bk-internal.mysql.com-20100415070122-1nxji8ym4mao13ao) (pib:16)
[17 Jun 2010 11:45] Bugs System
Pushed into 5.1.47-ndb-7.0.16 (revid:martin.skold@mysql.com-20100617114014-bva0dy24yyd67697) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[17 Jun 2010 12:23] Bugs System
Pushed into 5.1.47-ndb-6.2.19 (revid:martin.skold@mysql.com-20100617115448-idrbic6gbki37h1c) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[17 Jun 2010 13:10] Bugs System
Pushed into 5.1.47-ndb-6.3.35 (revid:martin.skold@mysql.com-20100617114611-61aqbb52j752y116) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)