Bug #18676 | Missleading error message when trying to create table when cluster is down | ||
---|---|---|---|
Submitted: | 31 Mar 2006 2:37 | Modified: | 25 May 2007 8:16 |
Reporter: | Jonathan Miller | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Cluster: Cluster (NDB) storage engine | Severity: | S3 (Non-critical) |
Version: | 5.0 5.1 | OS: | Linux (Linux 32 Bit OS) |
Assigned to: | Guangbao Ni | CPU Architecture: | Any |
[31 Mar 2006 2:37]
Jonathan Miller
[2 Apr 2006 5:48]
Jonas Oreland
This is actually by design. Suppose you have a mysqld that is not connected to cluster And create a table T1 (myisam), what should now happen if thet mysqld connects and there already is a table in the cluster called T1 That's serious data corruption. Therefor is any create table prevented when your not connected. However, I thought that the error message was 4009 (i.e not connected to cluster) --- Bottom line. I think that this is not a bug. (or possibly a P4, for bad error message) --- ps. tomas has also advocated that this should be allowed. but having incosistent data is _the_ worst kind of error. so we've been discussing having a property per database instead. i.e something like "create database jonas engine = ndb", and then you would not be allowed to create table in that database. but even if something like that probably would work, it's a feature request that has to be thought about carefully before implementing...
[23 Apr 2006 9:58]
Jon Stephens
Thank you for your bug report. This issue has been addressed in the documentation. The updated documentation will appear on our website shortly, and will be included in the next release of the relevant product(s). Additional info: Updated Cluster chapter sections discussing configuration with warning that this is intentional behaviour. Closed.
[24 Apr 2006 3:57]
Jonathan Miller
You can not keep a user from creating an innodb or myisam table if they are using and engine=innodb or engine=myisam. Therefore, I am reopening this bug and esqulating it
[24 Apr 2006 7:52]
Jon Stephens
Unless there's a way (a) for a mysqld to know what tables exist in which databases of a cluster when the cluster isn't running, or (b) to rename or ignore any schema objects local to the mysqld that clash with schema objects in the cluster when the mysqld is connected to the cluster, I don't see how we can allow this. Since (a) is impossible AFAICT and (b) would likely lead to complaints of "I can't access my tables now that I've connected to the cluster" and/or trying to figure out a foolproof way to avoid collisions, I agree with Jonas. Especially given that the workaround (comment out two lines in my.cnf and exercise some common sense) is pretty simple, I don't see this as being in urgent need of a "fix" in any case. That's my 2 satang, at least.
[24 Apr 2006 13:20]
Jonathan Miller
giving a message of "Table 't1' already exists " does not make sense. Maybe "Can't connect to cluster", but not the other.
[24 Apr 2006 13:38]
Jonas Oreland
Thats a good idea (which I suggested in my first post :-)) Changing subject. Reopening...
[24 Apr 2006 19:43]
Tomas Ulin
some info is there in the warnings master> create table t1 (a int) engine=myisam; ERROR 1050 (42S01): Table 't1' already exists master> show warnings; +-------+------+-------------------------------------------+ | Level | Code | Message | +-------+------+-------------------------------------------+ | Error | 1296 | Got error 4009 'Cluster Failure' from NDB | | Error | 1050 | Table 't1' already exists | +-------+------+-------------------------------------------+ 2 rows in set (0.00 sec)
[24 Apr 2006 19:46]
Tomas Ulin
lowering prio on this as it is a correction of an error message
[4 Aug 2006 9:11]
Jonas Oreland
Note also handle this when cluster has been restarted (--initial)
[16 Nov 2006 3: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/15394 ChangeSet@1.2259, 2006-11-16 11:51:47+08:00, gni@dev3-127.(none) +7 -0 BUG#18676 when cluster stoage engine is down, mysqld can't normally create talbe with other storage engine.
[29 Nov 2006 7:28]
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/16067 ChangeSet@1.2259, 2006-11-29 15:15:30+08:00, gni@dev3-127.(none) +4 -0 BUG#18676 when cluster stoage engine is down, mysqld can't normally create talbe with other storage engine.
[17 Jan 2007 2:21]
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/18223 ChangeSet@1.2259, 2007-01-17 10:20:25+08:00, gni@dev3-221.dev.cn.tlan +1 -0 BUG#18676 when cluster stoage engine is down, mysqld can't normally create talbe with other storage engine.
[26 Jan 2007 6:41]
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/18833 ChangeSet@1.2259, 2007-01-26 14:37:31+08:00, gni@dev3-221.dev.cn.tlan +1 -0 BUG#18676 when cluster stoage engine is down, mysqld can't normally create talbe with other storage engine.
[9 Feb 2007 5:45]
Stewart Smith
Suggested patch
Attachment: bug18676.patch (text/x-patch), 5.06 KiB.
[9 Feb 2007 5:46]
Stewart Smith
With my patch: $ killall ndbd $ ../client/mysql -u root test -S var/tmp/master.sock Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.0.36-debug-log Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create table t1 (a int) engine=ndb; ERROR 157 (HY000): Could not connect to storage engine mysql> show warnings; +-------+------+-------------------------------------------+ | Level | Code | Message | +-------+------+-------------------------------------------+ | Error | 1296 | Got error 4009 'Cluster Failure' from NDB | | Error | 157 | Could not connect to storage engine | +-------+------+-------------------------------------------+ 2 rows in set (0.00 sec) mysql> create table t1 (a int) engine=myisam; ERROR 157 (HY000): Could not connect to storage engine mysql> show warnings; +-------+------+-------------------------------------------+ | Level | Code | Message | +-------+------+-------------------------------------------+ | Error | 1296 | Got error 4009 'Cluster Failure' from NDB | | Error | 157 | Could not connect to storage engine | +-------+------+-------------------------------------------+ 2 rows in set (0.00 sec) mysql>
[3 Apr 2007 10:46]
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/23645 ChangeSet@1.2478, 2007-04-03 18:44:29+08:00, gni@dev3-221.dev.cn.tlan +4 -0 BUG#18676 when cluster storage engine is down, misleading error message on create table with 4009.
[3 Apr 2007 11:46]
Guangbao Ni
push into mysql-5.0-ndb-bj tree about 5.0.38 version
[5 Apr 2007 9:26]
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/23882 ChangeSet@1.2491, 2007-04-05 17:26:07+08:00, gni@dev3-221.dev.cn.tlan +2 -0 BUG#18676 In order to coincide with 5.0 mysqld error code after bug#18676, Map the 4009 ndb error code to 157 mysql error code
[7 Apr 2007 7:00]
Bugs System
Pushed into 5.0.40
[7 Apr 2007 7:01]
Bugs System
Pushed into 5.1.18-beta
[7 Apr 2007 7:57]
Tomas Ulin
5.0.40, 5.1.18, telco 6.2.1
[10 Apr 2007 3:11]
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 bugfix in 5.0.40, 5.1.18, and telco-6.2.1 changelogs. Updated 4.1/5.0/5.1 Cluster docs to indicate that the behaviour is intentional and not a bug.
[13 Apr 2007 10: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/24471 ChangeSet@1.2491, 2007-04-13 18:11:15+08:00, gni@dev3-221.dev.cn.tlan +5 -0 BUG#18676 In order to coincide with 5.0 mysqld error code after bug#18676, Map the 4009 ndb error code to 157 mysql error code
[16 Apr 2007 5:23]
Stewart Smith
gni working on fix for 5.1 patch
[16 Apr 2007 7:20]
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/24576 ChangeSet@1.2491, 2007-04-16 15:15:47+08:00, gni@dev3-221.dev.cn.tlan +6 -0 BUG#18676 In order to coincide with 5.0 mysqld error code after bug#18676, Map the 4009 ndb error code to 157 mysql error code
[16 Apr 2007 7:26]
Guangbao Ni
Approved by stewart
[24 Apr 2007 10:32]
Guangbao Ni
push into mysql-5.1-ndb-bj tree
[9 May 2007 3:17]
Guangbao Ni
merge into mysql-5.1-new-ndb tree
[10 May 2007 12:57]
Bugs System
Pushed into 5.1.19-beta
[15 May 2007 6:19]
Jon Stephens
Not sure I understand what needs to be documented. What's the user-visible change accomplished by this (new?) fix, please.
[15 May 2007 7:49]
Guangbao Ni
Hi Jon, It is invisible for user, just for developer.
[24 May 2007 12:23]
Stewart Smith
Jon, is improved message when trying to CREATE TABLE (any engine) when no ndbd nodes are around (i.e. "no connection" or "cluster not up" or "cluster failed a while ago"). also much saner internal programming interface. So perhaps an example somewhere in the manual (it seems to almost be a FAQ) and an entry in the changelog is enough. (unless we talk about this behaviour anywhere else... which i don't think we do)
[25 May 2007 8:16]
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 User-facing changes already documented per my previous comments. No further action taken.