Bug #43054 | Assertion `!table->auto_increment_field_not_null' failed when redefining trigger | ||
---|---|---|---|
Submitted: | 20 Feb 2009 11:28 | Modified: | 12 Nov 2009 18:40 |
Reporter: | Philip Stoev | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Locking | Severity: | S1 (Critical) |
Version: | 6.0-bzr,5.4 | OS: | Any |
Assigned to: | Magne Mæhre | CPU Architecture: | Any |
Tags: | regression |
[20 Feb 2009 11:28]
Philip Stoev
[20 Feb 2009 12:37]
Sveta Smirnova
Thank you for the report. Verified as described. Version 5.1 is not affected.
[6 May 2009 21:13]
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/73539 2774 Magne Mahre 2009-05-06 Bug #43054 Assertion `!table->auto_increment_field_not_null' failed when redefining trigger The 'table->auto_increment_field_not_null' flag is only valid within processing of a single row, and should be set to FALSE before navigating to the next row, or exiting the operation. This bug was caused by an SQL error occuring while executing a trigger after the flag had been set, so the normal resetting was bypassed. The table object was then returned to the table share's cache in a dirty condition. When the table object was reused, an assert caught that the flag was set. This patch explicitly resets the flag if there is an error in store_values, and before the table object is returned to the cache.
[12 May 2009 21:12]
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/73873 2775 Magne Mahre 2009-05-12 Bug #43054 Assertion `!table->auto_increment_field_not_null' failed when redefining trigger The 'table->auto_increment_field_not_null' flag is only valid within processing of a single row, and should be set to FALSE before navigating to the next row, or exiting the operation. This bug was caused by an SQL error occuring while executing a trigger after the flag had been set, so the normal resetting was bypassed. The table object was then returned to the table share's cache in a dirty condition. When the table object was reused, an assert caught that the flag was set. This patch explicitly resets the flag on error and after write_record.
[14 May 2009 21:11]
Guilhem Bichot
my plan is to review only after Evgeny has approved.
[28 May 2009 19:15]
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/75190 2792 Magne Mahre 2009-05-28 Bug #43054 Assertion `!table->auto_increment_field_not_null' failed when redefining trigger The 'table->auto_increment_field_not_null' flag is only valid within processing of a single row, and should be set to FALSE before navigating to the next row, or exiting the operation. This bug was caused by an SQL error occuring while executing a trigger after the flag had been set, so the normal resetting was bypassed. The table object was then returned to the table share's cache in a dirty condition. When the table object was reused, an assert caught that the flag was set. This patch explicitly clears the flag on error/abort.
[28 May 2009 20:51]
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/75199 2792 Magne Mahre 2009-05-28 Bug #43054 Assertion `!table->auto_increment_field_not_null' failed when redefining trigger The 'table->auto_increment_field_not_null' flag is only valid within processing of a single row, and should be set to FALSE before navigating to the next row, or exiting the operation. This bug was caused by an SQL error occuring while executing a trigger after the flag had been set, so the normal resetting was bypassed. The table object was then returned to the table share's cache in a dirty condition. When the table object was reused, an assert caught that the flag was set. This patch explicitly clears the flag on error/abort.
[28 May 2009 21:30]
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/75200 2790 Magne Mahre 2009-05-28 Bug #43054 Assertion `!table->auto_increment_field_not_null' failed when redefining trigger The 'table->auto_increment_field_not_null' flag is only valid within processing of a single row, and should be set to FALSE before navigating to the next row, or exiting the operation. This bug was caused by an SQL error occuring while executing a trigger after the flag had been set, so the normal resetting was bypassed. The table object was then returned to the table share's cache in a dirty condition. When the table object was reused, an assert caught that the flag was set. This patch explicitly clears the flag on error/abort.
[9 Jul 2009 8:58]
Alexander Nozdrin
Pushed into azalea-bugfixing.
[9 Jul 2009 9:10]
Alexander Nozdrin
Merged into azalea (5.4.4-alpha).
[17 Jul 2009 3:13]
Paul DuBois
Noted in 5.4.4 changelog. Redefining a trigger could cause an assertion failure.
[12 Aug 2009 22:42]
Paul DuBois
Noted in 5.4.2 changelog because next 5.4 version will be 5.4.2 and not 5.4.4.
[15 Aug 2009 1:58]
Paul DuBois
Ignore previous comment about 5.4.2.
[15 Oct 2009 12:53]
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/86975 2927 Magne Mahre 2009-10-15 Bug #43054 Assertion `!table->auto_increment_field_not_null' failed when redefining trigger The 'table->auto_increment_field_not_null' flag is only valid within processing of a single row, and should be set to FALSE before navigating to the next row, or exiting the operation. This bug was caused by an SQL error occuring while executing a trigger after the flag had been set, so the normal resetting was bypassed. The table object was then returned to the table share's cache in a dirty condition. When the table object was reused, an assert caught that the flag was set. This patch explicitly clears the flag on error/abort. Backported from mysql-6.0-codebase revid: 2617.52.1
[15 Oct 2009 12:53]
Magne Mæhre
Backported to 5.5.0
[15 Oct 2009 19:30]
Paul DuBois
Noted in 5.5.0 changelog.
[3 Nov 2009 7:16]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20091102151658-j9o4wgro47m5v84d) (version source revid:alik@sun.com-20091023064702-2f8jdmny61bdl94u) (merge vers: 6.0.14-alpha) (pib:13)
[3 Nov 2009 17:54]
Paul DuBois
Noted in 6.0.14 changelog.
[12 Nov 2009 8:17]
Bugs System
Pushed into 5.5.0-beta (revid:alik@sun.com-20091110093229-0bh5hix780cyeicl) (version source revid:mikael@mysql.com-20091103113702-p61dlwc6ml6fxg18) (merge vers: 5.5.0-beta) (pib:13)