Bug #26898 Alter table to empty merge from ndb causes mysqld to crash
Submitted: 7 Mar 2007 6:02 Modified: 10 Apr 2007 5:53
Reporter: Monty Taylor Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S2 (Serious)
Version:5.1.15, 5.0.38 OS:Linux (linux)
Assigned to: justin he CPU Architecture:Any

[7 Mar 2007 6:02] Monty Taylor
Description:
In trying to write a script to cycle old data out of ndb, I discovered that you can't alter an ndbcluster table directly to merge that doesn't contain tables without crashing mysqld. 

How to repeat:
root:TEST_DB_1> show create table MYTABLENAME\G
*************************** 1. row ***************************
       Table: MYTABLENAME
Create Table: CREATE TABLE `MYTABLENAME` (
  `ATTR1` int(10) unsigned NOT NULL DEFAULT '0',
  `ATTR2` int(10) unsigned NOT NULL,
  PRIMARY KEY (`ATTR1`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

root:TEST_DB_1> alter table MYTABLENAME engine=merge; 
ERROR 2013 (HY000): Lost connection to MySQL server during query
root:TEST_DB_1> show create table MYTABLENAME\G
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    2
Current database: TEST_DB_1

*************************** 1. row ***************************
       Table: MYTABLENAME
Create Table: CREATE TABLE `MYTABLENAME` (
  `ATTR1` int(10) unsigned NOT NULL DEFAULT '0',
  `ATTR2` int(10) unsigned NOT NULL,
  PRIMARY KEY (`ATTR1`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=()
1 row in set (0.00 sec)

root:TEST_DB_1> alter table MYTABLENAME engine=ndbcluster; 
Query OK, 0 rows affected (2.08 sec)
Records: 0  Duplicates: 0  Warnings: 0

root:TEST_DB_1> alter table MYTABLENAME engine=myisam;
Query OK, 0 rows affected (0.57 sec)
Records: 0  Duplicates: 0  Warnings: 0

root:TEST_DB_1> alter table MYTABLENAME engine=merge;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

Suggested fix:
I'm guessing not having mysqld crash.
[12 Mar 2007 10:36] Hartmut Holzgraefe
verified, attaching standalone testcase
[12 Mar 2007 10:36] Hartmut Holzgraefe
mysqltest test case

Attachment: bug26898.tgz (application/x-gtar, text), 700 bytes.

[20 Mar 2007 4:27] 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/22322

ChangeSet@1.2486, 2007-03-20 12:21:01+08:00, Justin.He@dev3-240.dev.cn.tlan +1 -0
  Bug#26898, Alter table to empty merge from ndb causes mysqld to crash
[28 Mar 2007 2:39] 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/23095

ChangeSet@1.2486, 2007-03-28 10:32:06+08:00, Justin.He@dev3-240.dev.cn.tlan +1 -0
  Bug#26898, Alter table to empty merge from ndb causes mysqld to crash
[7 Apr 2007 7:01] Bugs System
Pushed into 5.1.18-beta
[10 Apr 2007 5:53] 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 fix in 5.1.18 changelog.