Bug #32772 | partition crash 1: enum column and double | ||
---|---|---|---|
Submitted: | 27 Nov 2007 14:36 | Modified: | 14 Dec 2007 16:45 |
Reporter: | Shane Bester (Platinum Quality Contributor) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Partitions | Severity: | S1 (Critical) |
Version: | 5.1.23-debug | OS: | Any |
Assigned to: | Sergey Petrunya | CPU Architecture: | Any |
[27 Nov 2007 14:36]
Shane Bester
[27 Nov 2007 14:36]
MySQL Verification Team
somebody please verify with 5.1BK
[27 Nov 2007 14:41]
MySQL Verification Team
Shane, It is your source the last one?. I can't repeat with release server and source 3 days older: mysql> create table `t1` (`c0` int,`c1` bigint,`c2` set('sweet'),key (`c2`,`c1`,`c0`),key(`c0`)) -> engine=myisam /*!50100 partition by hash (month(`c0`)) partitions 5*/; Query OK, 0 rows affected (0.17 sec) mysql> insert ignore into `t1` set `c0` = -6502262, `c1` = 3992917, `c2` = 35019; Query OK, 1 row affected, 2 warnings (0.08 sec) mysql> insert ignore into `t1` set `c0` = 241221, `c1` = -6862346, `c2` = 56644; Query OK, 1 row affected, 1 warning (0.00 sec) mysql> select `c1` from `t1` group by (select `c0` from `t1` limit 1); +----------+ | c1 | +----------+ | -6862346 | +----------+ 1 row in set (0.05 sec) mysql> select version(); +------------------+ | version() | +------------------+ | 5.1.23-rc-nt-log | +------------------+ 1 row in set (0.00 sec) mysql>
[27 Nov 2007 14:46]
MySQL Verification Team
miguel please check if full debug build will crash?
[27 Nov 2007 14:52]
MySQL Verification Team
Same source and full debug on Linux, crashes: [miguel@skybr 5.1]$ bin/mysql -uroot test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.1.23-rc-debug Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> drop table if exists `t1`; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> create table `t1` (`c0` int,`c1` bigint,`c2` set('sweet'),key (`c2`,`c1`,`c0`),key(`c0`)) -> engine=myisam /*!50100 partition by hash (month(`c0`)) partitions 5*/; Query OK, 0 rows affected (0.04 sec) mysql> insert ignore into `t1` set `c0` = -6502262, `c1` = 3992917, `c2` = 35019; Query OK, 1 row affected, 2 warnings (0.00 sec) mysql> insert ignore into `t1` set `c0` = 241221, `c1` = -6862346, `c2` = 56644; Query OK, 1 row affected, 1 warning (0.00 sec) mysql> select `c1` from `t1` group by (select `c0` from `t1` limit 1); ERROR 2013 (HY000): Lost connection to MySQL server during query mysql>
[28 Nov 2007 0:02]
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/38660 ChangeSet@1.2656, 2007-11-28 03:02:05+03:00, sergefp@mysql.com +3 -0 BUG#32772: partition crash 1: enum column The bug was that for ordered index scans, ha_partition::index_init() did not put index columns into table->read_set if the underlying storage engine did not have HA_PARTIAL_COLUMN_READ flag. This was causing assertion failure when handle_ordered_index_scan() tried to sort the records according to index order. Fixed by making ha_partition::index_init() put index columns into table->read_set for all ordered scans.
[28 Nov 2007 14:31]
MySQL Verification Team
another slightly different testcase for the crash in Field_double:cmp drop table if exists `t1`; create table `t1` (`c0` int,`c1` bigint, `c2` double (2,0) zerofill ,key (`c2`,`c1`,`c0`),key(`c0`)) engine=myisam /*!50100 partition by hash (month(`c0`)) partitions 5*/; insert ignore into `t1` set `c0` = -6502262, `c1` = 3992917, `c2` = 35019; insert ignore into `t1` set `c0` = 241221, `c1` = -6862346, `c2` = 56644; select `c1` from `t1` group by (select `c0` from `t1` limit 1);
[14 Dec 2007 8:18]
Bugs System
Pushed into 5.1.23-rc
[14 Dec 2007 8:21]
Bugs System
Pushed into 6.0.5-alpha
[14 Dec 2007 16:45]
Jon Stephens
Thank you for your bug report. This issue has been committed to our source repository of that product and will be incorporated into the next release. If necessary, you can access the source repository and build the latest available version, including the bug fix. More information about accessing the source trees is available at http://dev.mysql.com/doc/en/installing-source.html Documented in 5.1.23 and 6.0.5 changelogs as follows: A query of the form SELECT col1 FROM table GROUP BY (SELECT col2 FROM table LIMIT 1); against a partitioned table having a SET column crashed the server.