Skip to content
  • Lakshmi Narayanan Sreethar's avatar
    da1a6472
    Bug #19550973: · da1a6472
    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
    da1a6472
    Bug #19550973:
    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
Loading