-
Lakshmi Narayanan Sreethar authored
CREATE/DROP DATABASE STATEMENT SEGFAULTS IF IDENTIFIER LENGTH IS >=64 The bug is due to the mismatch of schema identifier limits between mysqld and ndb. mysqld allows 64 whereas ndb allows only 63. The crash happens in NDB's binlog thread when it tries to replicate the newly created database with schema length 64 to all other mysqlds present in the cluster. This patch fixes it by preventing the replication of these 64 length dbs to other mysqld. This patch also fixes the possible crash that could occur during ALTER TABLE RENAME with schema identifier of length 64. Changes : - added a validation in ndbcluster_binlog's ndbcluster_log_schema_op() to throw an error if length is > 63 and skip logging to ndb_schema table. - added a similar validation to ha_ndbcluster::rename_table() - updated the error thrown in ha_ndbcluster::create() when table name length is greater than 63 - added appropriate test cases to ndb_basic and ndb_multi to test the patch
Lakshmi Narayanan Sreethar authoredCREATE/DROP DATABASE STATEMENT SEGFAULTS IF IDENTIFIER LENGTH IS >=64 The bug is due to the mismatch of schema identifier limits between mysqld and ndb. mysqld allows 64 whereas ndb allows only 63. The crash happens in NDB's binlog thread when it tries to replicate the newly created database with schema length 64 to all other mysqlds present in the cluster. This patch fixes it by preventing the replication of these 64 length dbs to other mysqld. This patch also fixes the possible crash that could occur during ALTER TABLE RENAME with schema identifier of length 64. Changes : - added a validation in ndbcluster_binlog's ndbcluster_log_schema_op() to throw an error if length is > 63 and skip logging to ndb_schema table. - added a similar validation to ha_ndbcluster::rename_table() - updated the error thrown in ha_ndbcluster::create() when table name length is greater than 63 - added appropriate test cases to ndb_basic and ndb_multi to test the patch
Loading