Bug #40657 assertion with out of range variables and traditional sql_mode
Submitted: 12 Nov 2008 7:52 Modified: 23 Mar 2009 2:12
Reporter: Shane Bester (Platinum Quality Contributor) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: General Severity:S3 (Non-critical)
Version:5.1.29-debug, 5.1-bzr OS:Any
Assigned to: Tatiana Azundris Nuernberg CPU Architecture:Any
Tags: assertion

[12 Nov 2008 7:52] Shane Bester
Description:
Version: '5.1.29-rc-community-debug'  socket: ''  port: 3306  MySQL Community Server - Debug (GPL)
Assertion failed: ! is_set(), file .\sql_class.cc, line 411

How to repeat:
set session sql_mode = 'TRADITIONAL';
set global expire_logs_days = 100;
[12 Nov 2008 7:55] Valeriy Kravchuk
Thank you for a bug report. Verified with 5.1-bzr.
[1 Dec 2008 3:51] Tatiana Azundris Nuernberg
In STRICT mode, the out-of-bounds value causes an error message to be queued (rather than just a warning), without any further error-like processing happening. The assertion rightfully complains that we're trying to send an OK while having an error queued.
[3 Feb 2009 1: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/64958

2720 Tatiana A. Nurnberg	2009-02-03
      Bug#40657: assertion with out of range variables and traditional sql_mode
      
      In STRICT mode, out-of-bounds values caused an error message
      to be queued (rather than just a warning), without any further
      error-like processing happening. (The error is queued during
      update, at which time it's too late. For it to be processed
      properly, it would need to be queued during check-stage.)
      The assertion rightfully complains that we're trying to send
      an OK while having an error queued.
      
      Changeset breaks a lot of tests out into check-stage. This also
      allows us to send more correct warnings/error messages.
[24 Feb 2009 15:50] 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/67400

2721 Tatiana A. Nurnberg	2009-02-24
      Bug#40657: assertion with out of range variables and traditional sql_mode
      
      In STRICT mode, out-of-bounds values caused an error message
      to be queued (rather than just a warning), without any further
      error-like processing happening. (The error is queued during
      update, at which time it's too late. For it to be processed
      properly, it would need to be queued during check-stage.)
      The assertion rightfully complains that we're trying to send
      an OK while having an error queued.
      
      Changeset breaks a lot of tests out into check-stage. This also
      allows us to send more correct warnings/error messages.
     @ sql/set_var.cc
        cleanup: fold get_unsigned() and fix_unsigned() into one,
        as well as all the semi-common code from the ::check
        functions.
[26 Feb 2009 16:48] 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/67699

2722 Tatiana A. Nurnberg	2009-02-26
      Bug#40657: assertion with out of range variables and traditional sql_mode
      
      In STRICT mode, out-of-bounds values caused an error message
      to be queued (rather than just a warning), without any further
      error-like processing happening. (The error is queued during
      update, at which time it's too late. For it to be processed
      properly, it would need to be queued during check-stage.)
      The assertion rightfully complains that we're trying to send
      an OK while having an error queued.
      
      Changeset breaks a lot of tests out into check-stage. This also
      allows us to send more correct warnings/error messages.
     @ sql/set_var.cc
        cleanup: fold get_unsigned() and fix_unsigned() into one,
        as well as all the semi-common code from the ::check
        functions.
[27 Feb 2009 9:35] 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/67813

2722 Tatiana A. Nurnberg	2009-02-27
      Bug#40657: assertion with out of range variables and traditional sql_mode
      
      In STRICT mode, out-of-bounds values caused an error message
      to be queued (rather than just a warning), without any further
      error-like processing happening. (The error is queued during
      update, at which time it's too late. For it to be processed
      properly, it would need to be queued during check-stage.)
      The assertion rightfully complains that we're trying to send
      an OK while having an error queued.
      
      Changeset breaks a lot of tests out into check-stage. This also
      allows us to send more correct warnings/error messages.
     @ sql/set_var.cc
        cleanup: fold get_unsigned() and fix_unsigned() into one,
        as well as all the semi-common code from the ::check
        functions.
[5 Mar 2009 15:50] 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/68397

2826 Tatiana A. Nurnberg	2009-03-05
      Bug#40657: assertion with out of range variables and traditional sql_mode
      
      Some changes that make things more elegant in 6.0,
      backported so the code is mostly the same in 5.1,
      for easier maintainence.
     @ sql/set_var.cc
        Backporting some changes to 5.1 so the code is
        mostly the same in both versions. Less to learn!
[9 Mar 2009 8:43] 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/68591

2837 He Zhenxing	2009-03-09 [merge]
      Auto merge
[9 Mar 2009 14:35] 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/68660

2828 Tatiana A. Nurnberg	2009-03-09
      Bug#40657: assertion with out of range variables and traditional sql_mode
      
      test-fixes for 32-bit
     @ mysql-test/t/variables.test
        Test for 10351 ("Max_Heap_Table_Size cannot be set to 4 gb")
        now throws a warning on 32-bit, as it should. As we're not
        actually interested in the warning but only in whether the
        variable is set to a correct value afterwards, we disable
        warnings for the duration of that test case so we won't have
        to split the test into a 32-bit and a 64-bit flavour for no
        real reason.
[9 Mar 2009 16:16] Tatiana Azundris Nuernberg
queued for 5.1.33, 6.0.11 in -bugteam
[11 Mar 2009 22:43] 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/68971

2832 Tatiana A. Nurnberg	2009-03-11
      Bug#40657: assertion with out of range variables and traditional sql_mode
      
      normalize error-messages
     @ mysql-test/r/variables.result
        show that warning uses underscore
        (sysvar-name), not hyphens (option-name)
     @ mysql-test/t/variables.test
        show that warning uses underscore
        (sysvar-name), not hyphens (option-name)
     @ sql/set_var.cc
        normalize error-messages
[13 Mar 2009 19:02] Bugs System
Pushed into 5.1.33 (revid:joro@sun.com-20090313111355-7bsi1hgkvrg8pdds) (version source revid:azundris@mysql.com-20090311223253-jt96tgocs9vhuc06) (merge vers: 5.1.33) (pib:6)
[18 Mar 2009 13:17] Bugs System
Pushed into 6.0.11-alpha (revid:joro@sun.com-20090318122208-1b5kvg6zeb4hxwp9) (version source revid:azundris@mysql.com-20090312170027-cdt9tga9wu7epbjj) (merge vers: 6.0.11-alpha) (pib:6)
[23 Mar 2009 2:12] Paul DuBois
Noted in 5.1.33, 6.0.11 changelogs.

With strict SQL mode enabled, setting a system variable to an
out-of-bounds value caused an assertion failure.
[9 May 2009 16:39] Bugs System
Pushed into 5.1.34-ndb-6.2.18 (revid:jonas@mysql.com-20090508185236-p9b3as7qyauybefl) (version source revid:jonas@mysql.com-20090508100057-30ote4xggi4nq14v) (merge vers: 5.1.33-ndb-6.2.18) (pib:6)
[9 May 2009 17:36] Bugs System
Pushed into 5.1.34-ndb-6.3.25 (revid:jonas@mysql.com-20090509063138-1u3q3v09wnn2txyt) (version source revid:jonas@mysql.com-20090508175813-s6yele2z3oh6o99z) (merge vers: 5.1.33-ndb-6.3.25) (pib:6)
[9 May 2009 18:34] Bugs System
Pushed into 5.1.34-ndb-7.0.6 (revid:jonas@mysql.com-20090509154927-im9a7g846c6u1hzc) (version source revid:jonas@mysql.com-20090509073226-09bljakh9eppogec) (merge vers: 5.1.33-ndb-7.0.6) (pib:6)