Bug #33692 Cluster crashes on BLOB insert (triggered by 16 kB)
Submitted: 4 Jan 2008 15:00 Modified: 6 Oct 2009 7:19
Reporter: Joerg Bruehe Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S2 (Serious)
Version:mysql-6.0 OS:Other (see text)
Assigned to: Pekka Nousiainen CPU Architecture:Any
Tags: 6.0.4-alpha

[4 Jan 2008 15:00] Joerg Bruehe
Description:
New effect in 6.0, also seen in 5.2  -  but neither 5.0 nor 5.1.

In the 6.0.4-alpha release build tests, it affected
- Linux, x86, icc
- Linux, x86_64, icc
- Solaris 9, x86

Symptoms vary slightly, all listed below.

First, test "ndb.ndb_blob":

===== Solaris =====
mysqltest: At line NNN: query 'insert into t1 values(2,@b2,222,@d2)' failed: 1296: Got error 879 '879' from NDBCLUSTER

The result from queries just before the failure was:
< snip >
set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
set @b2 = 'b2';
set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
set @d2 = 'dd2';
set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
select length(@x0),length(@b1),length(@d1) from dual;
length(@x0)     length(@b1)     length(@d1)
256     2256    3000
select length(@x0),length(@b2),length(@d2) from dual;
length(@x0)     length(@b2)     length(@d2)
256     20000   30000
insert into t1 values(1,@b1,111,@d1);
insert into t1 values(2,@b2,222,@d2);

More results from queries before failure can be found in /PATH/mysql-test/var/log/ndb_blob.log

Warnings from just before the error:
Error 1296 Got error 879 '879' from NDB
=====

===== Linux x86 =====
Similar, but with error message
mysqltest: At line NNN: query 'insert into t1 values(2,@b2,222,@d2)' failed:
1297: Got temporary error 286 'Node failure caused abort of transaction' from NDBCLUSTER

===== Linux x86_64 =====
Even logged a "commit", but with a crash:
mysqltest: At line NNN: query 'commit' failed: 2013: Lost connection to MySQL server during query

Same platforms, similar problem in test "rpl_ndb.rpl_ndb_blob2":

===== Solaris =====
mysqltest: In included file "./extra/rpl_tests/rpl_row_blob.test":
At line 28: query 'INSERT INTO test.t1 VALUES (NULL, repeat('b',16*1024))' failed:
1296: Got error 879 '879' from NDBCLUSTER

The result from queries just before the failure was:
stop slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
*****  Table Create Section ****

CREATE TABLE test.t1 (c1 int not null auto_increment,
data LONGBLOB, PRIMARY KEY(c1))ENGINE=#;

**** Data Insert Section test.t1 *****

INSERT INTO test.t1 VALUES (NULL, NULL);
INSERT INTO test.t1 VALUES (NULL, repeat('a',1*1024));
INSERT INTO test.t1 VALUES (NULL, repeat('b',16*1024));

More results from queries before failure can be found in /PATH/mysql-test/var/log/rpl_ndb_blob2.log

Warnings from just before the error:
Error 1296 Got error 879 '879' from NDB
mysqltest: In included file "./extra/rpl_tests/rpl_row_blob.test": At line 28: query 'INSERT INTO test.t1 VALUES (NULL, rep
eat('b',16*1024))' failed: 1296: Got error 879 '879' from NDBCLUSTER

The result from queries just before the failure was:
stop slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
*****  Table Create Section ****

CREATE TABLE test.t1 (c1 int not null auto_increment,
data LONGBLOB, PRIMARY KEY(c1))ENGINE=#;

**** Data Insert Section test.t1 *****

INSERT INTO test.t1 VALUES (NULL, NULL);
INSERT INTO test.t1 VALUES (NULL, repeat('a',1*1024));
INSERT INTO test.t1 VALUES (NULL, repeat('b',16*1024));

More results from queries before failure can be found in /PATH/mysql-test/var/log/rpl_ndb_blob2.log

Warnings from just before the error:
Error 1296 Got error 879 '879' from NDB
=====

===== Linux x86 =====
Slightly different message:
mysqltest: In included file "./extra/rpl_tests/rpl_row_blob.test":
At line 28: query 'INSERT INTO test.t1 VALUES (NULL, repeat('b',16*1024))' failed:
1297: Got temporary error 286 'Node failure caused abort of transaction' from NDBCLUSTER

===== Linux x86_64 =====
Plain crash:
mysqltest: In included file "./extra/rpl_tests/rpl_row_blob.test":
At line 28: query 'INSERT INTO test.t1 VALUES (NULL, repeat('b',16*1024))' failed:
2013: Lost connection to MySQL server during query

How to repeat:
Found by running the test suite.