Bug #58638 ndbmtd:Incorrect handling of create/drop with different #partitions in DD-tables
Submitted: 1 Dec 2010 19:58 Modified: 2 Dec 2010 19:27
Reporter: Jonas Oreland Email Updates:
Status: Closed Impact on me:
Category:MySQL Cluster: Disk Data Severity:S3 (Non-critical)
Version: OS:Any
Assigned to: Jonas Oreland CPU Architecture:Any

[1 Dec 2010 19:58] Jonas Oreland
This bug is same as bug#45154, except that is only affects ndbmtd
(i.e multi threaded data node), in which a check was missing
causing data-node to try to access non-valid fragment when running undo
during restart.

The problem can only occur if creating table with lots of partition,
dropping it, and create a new table with fewer partitions.

How to repeat:
Seen in autotest

Suggested fix:
Check lsn before looking up fragment-record.
[2 Dec 2010 6: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:


4041 jonas oreland	2010-12-02
      ndb - bug#58638 - look at lsn before looking at table/fragment meta-data
[2 Dec 2010 6:40] Bugs System
Pushed into mysql-5.1-telco-7.0 5.1.51-ndb-7.0.21 (revid:jonas@mysql.com-20101202064030-518pw6y1gjt49y1i) (version source revid:jonas@mysql.com-20101202064030-518pw6y1gjt49y1i) (merge vers: 5.1.51-ndb-7.0.21) (pib:23)
[2 Dec 2010 9:39] Jonas Oreland
pushed to 7.0.21 and 7.1.10
[2 Dec 2010 19:27] Jon Stephens
Documented fix in the NDB-7.0.21 and 7.1.10 changelogs as follows:

        When using multi-threaded data nodes, an NDB table created 
        with a very large value for the MAX_ROWS option could--if
        this table was dropped and a new table with fewer partitions,
        but having the same table ID, was created--cause ndbmtd to 
        crash when performing a system restart. This was because the 
        server attempted to examine each partition whether or not it 
        actually existed.

        This issue is the same as that reported in Bug#45154, except
        that the current issue is specific to ndbmtd, rather than