Bug #40479 deleting rows from disk-based cluster after altering table crashes data node
Submitted: 3 Nov 2008 16:26 Modified: 3 Nov 2008 20:09
Reporter: Monty Taylor Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Cluster: Disk Data Severity:S2 (Serious)
Version:mysql-5.1-telco-6.3 OS:Linux
Assigned to: CPU Architecture:Any
Tags: 6.3.16, mysql-5.1-telco-6.3

[3 Nov 2008 16:26] Monty Taylor
Description:
When trying out disk-based data, a tablespace was added, then a table was altered to use it. Then rows were deleted. This resulted in a data node crashing. It is repeatable every time.

How to repeat:
CREATE TABLE `paggolog` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `priority` varchar(15) NOT NULL DEFAULT '',
  `category` varchar(255) NOT NULL DEFAULT '',
  `thread` varchar(100) NOT NULL DEFAULT '',
  `message` varchar(1000) NOT NULL,
  `layout` varchar(255) DEFAULT NULL,
  `timestamp` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `paggologtype` smallint(1) NOT NULL,
  `secondstimestamp` varchar(23) DEFAULT NULL,
  `mti` char(4) DEFAULT NULL,
  `transactionflag` char(1) DEFAULT NULL,
  `checked` date DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `paggolog_timestamp_idx` (`timestamp`),
  KEY `paggolog_mti_idx` (`mti`),
  KEY `paggolog_checked_idx` (`checked`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1

*** Insert rows here ****

mysql> select count(*) from paggolog;
+----------+
| count(*) |
+----------+
|   816118 |
+----------+
1 row in set (0,02 sec)

mysql> CREATE LOGFILE GROUP log1
    ->     ADD UNDOFILE 'undo1.dat'
    ->     ENGINE = NDBCLUSTER;
Query OK, 0 rows affected (39,61 sec)

mysql> CREATE TABLESPACE ts1
    ->     ADD DATAFILE 'file1.dat'
    ->     USE LOGFILE GROUP log1
    ->     INITIAL_SIZE = 12000000000
    ->     ENGINE = NDBCLUSTER;

Query OK, 0 rows affected (56 min 30,55 sec)

mysql>
mysql>
mysql> ALTER TABLE paggolog TABLESPACE ts1 STORAGE DISK ENGINE NDB;
mysql> delete from paggolog where id <= 90000 limit 50000;
ERROR 1297 (HY000): Got temporary error 4025 'Node failure caused abort of
transaction' from NDBCLUSTER

*** Note: rows must be inserted before the table is altered to add the rows.

Suggested fix:
No clue.
[3 Nov 2008 20:09] Jonathan Miller
I will attach a script to reproduce this. I have not taken the time to break it down any from the attached script.

Time: Friday 31 October 2008 - 22:18:05
Status: Temporary error, restart node
Message: System error, node killed during node restart by other node (Internal error, programming error or missing error message, please report a bug)
Error: 2303
Error data: Node 2 killed this node because GCP stop was detected
Error object: NDBCNTR (Line: 249) 0x00000002
Program: /data0/cr_autotest/libexec/ndbd
Pid: 20321
Trace: ./ndb_2_trace.log.1
Version: mysql-5.1.29 ndb-6.3.19-RC
***EOM***
[3 Nov 2008 20:13] Jonathan Miller
Reproduction shell scipt

Attachment: test_paggo.sh (application/x-shellscript, text), 778 bytes.