Bug #53935 Incorrect assertion in DbtupDiskAlloc.cpp
Submitted: 24 May 2010 8:25 Modified: 25 May 2010 12:10
Reporter: Jonas Oreland Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S3 (Non-critical)
Version:mysql-5.1-telco-6.2 OS:Any
Assigned to: Jonas Oreland CPU Architecture:Any

[24 May 2010 8:25] Jonas Oreland
Description:
If creating a disk-table, running lots of traffic
and the dropping it and create a memory table and perform
restart.

ndb(mt)d could assert, as undolog records didn't check that table
was now only memory.

The extra code run was harmless, cause the check was being performed
but the assertions was run before the check...and could crash the node.

How to repeat:
see above,

Suggested fix:
check that table is disk-based, before performing extent-accounting
[24 May 2010 8:29] 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/109004

3100 Jonas Oreland	2010-05-24
      ndb - bug#53935 - check that table is disk-based, before checking assertions on extent-accounting
[24 May 2010 9:03] Jonas Oreland
pushed to 6.2.19, 6.3.34, 7.0.15 and 7.1.4
[25 May 2010 12:10] Jon Stephens
Documented bugfix in the NDB-6.2.19, 6.3.34, 7.0.15, and 7.1.4 changelogs, as follows:

      Creating a Disk Data table, dropping it, then creating an in-memory
      table and performing a restart, could cause data node processes to
      fail with errors in the DBTUP kernel block if the new table's internal 
      ID was the same as that of the old Disk Data table. This could occur 
      because undo log handling did not check that the table having this ID 
      was now in-memory only.

Closed.