| Bug #52228 | MySQL Cluster : DDL during data node upgrade results in client hanging | ||
|---|---|---|---|
| Submitted: | 19 Mar 2010 17:35 | Modified: | 29 Mar 2010 7:57 |
| Reporter: | Frazer Clement | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Cluster: Cluster (NDB) storage engine | Severity: | S3 (Non-critical) |
| Version: | mysql-5.1-telco-7.0 | OS: | Any |
| Assigned to: | Frazer Clement | CPU Architecture: | Any |
[22 Mar 2010 13: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/103995 3469 Frazer Clement 2010-03-22 Bug#52228 : MySQL Cluster : DDL during data node upgrade results in client hanging
[23 Mar 2010 7:04]
Jonas Oreland
pushed to 7.0.14 and 7.1.3
[29 Mar 2010 7:57]
Jon Stephens
Documented bugfix in the NDB-7.0.14 and 7.1.3 changelogs as follows:
In MySQL Cluster NDB 7.0 and later, DDL operations are performed
within schema transactions; the NDB kernel code for starting a
schema transaction checks that all data nodes are at the same
version before allowing a schema transaction to start. However,
when a version mismatch was detected, the client was not
actually informed of this problem, which caused the client to
hang.
Closed.

Description: From 7.0 onwards, DDL operations complete within a schema transaction. The kernel code for starting a schema transaction checks that all data nodes are at the same version before allowing a schema transaction to start. However when this code detects a version mismatch it currently returns without informing the client of the problem. This results in the client hanging. How to repeat: Create cluster with mixed NDBD versions >= 7.0. Attempt DDL from a client (e.g. create_tab T1). Observe client hang. Suggested fix: --- mysql-5.1-telco-7.1-wl4197.orig/storage/ndb/src/kernel/blocks/dbdict/Dbdict. cpp 2010-03-19 17:09:47.000000000 +0000 +++ mysql-5.1-telco-7.1-wl4197/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp 2010-03-19 17:10:49.000000000 +0000 @@ -23015,7 +23015,7 @@ Dbdict::execSCHEMA_TRANS_BEGIN_REQ(Signa { jam(); setError(error, SchemaTransBeginRef::IncompatibleVersions, __LINE__); - return; + break; }