Bug #42833 ndb_restore segfault when there is an error
Submitted: 13 Feb 2009 14:38 Modified: 13 Feb 2009 14:39
Reporter: Geert Vanderkelen Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S3 (Non-critical)
Version:mysql-5.1-telco-6.3 OS:Linux
Assigned to: CPU Architecture:Any
Tags: mysql-5.1.31-ndb-6.3.22
Triage: Triaged: D3 (Medium) / R2 (Low) / E2 (Low)

[13 Feb 2009 14:38] Geert Vanderkelen
Description:
ndb_restore segfaults after an error occurred.

shell> ndb_restore ....
..
Processing data in table: test/def/t1(5) fragment 0
Column: 3 type 7 32 1 4  
Permanent: 4004: Attribute name or id not found in the table
Segmentation fault

Linux x86_64 btw.

How to repeat:
Here's a way to force the error:

CREATE TABLE t1 (
 a INT UNSIGNED NOT NULL AUTO_INCREMENT,
 b INT,
 c INT,
 d BIGINT,
 PRIMARY KEY (a)
) ENGINE=ndbcluster;

INSERT INTO t1 (b,c,d) VALUES (1,1,1),(2,2,2),(3,3,3),(4,4,4);

Make backup, recreate the table with a missing column,
and then run ndb_restore

CREATE TABLE t1 (
 a INT UNSIGNED NOT NULL AUTO_INCREMENT,
 b INT,
 d INT,
 PRIMARY KEY (a)
) ENGINE=ndbcluster;

Suggested fix:
It works, but it segfaults.
[13 Feb 2009 14:39] Geert Vanderkelen
Verified using ndb_restore of 6.3.17, 6.3.21, 6.3.22, 6.3bzr and 6.4bzr.