Bug #48441 NDB: blob causes ndbmtd sig 11
Submitted: 30 Oct 2009 17:19 Modified: 4 Nov 2009 10:28
Reporter: Andrew Hutchings Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S2 (Serious)
Version:mysql-5.1-telco-7.0 OS:Any
Assigned to: Jonas Oreland CPU Architecture:Any
Tags: 7.0.8

[30 Oct 2009 17:19] Andrew Hutchings
Description:
Whilst trying to verify bug #46914 I hit this:

Time: Friday 30 October 2009 - 18:07:16
Status: Temporary error, restart node
Message: Error OS signal received (Internal error, programming error or missing error message, please report a bug)
Error: 6000
Error data: Signal 11 received; Segmentation fault
Error object: ndbd.cpp
Program: /data1/mysql/ndb-7.0.8/bin/ndbmtd
Pid: 31241 thr: 4
Version: mysql-5.1.37 ndb-7.0.8
Trace: /data2/bug/46914/ndb//ndb_3_trace.log.2 /data2/bug/46914/ndb//ndb_3_trace.log.2_t1 /data2/bug/46914/ndb//ndb_3_trace.l

How to repeat:
Config.ini and logs to be attached shortly.

shell> dd if=/dev/urandom of=testblob.dat bs=1024 count=4096

mysql> create table t1 (a int primary key auto_increment, b longblob, c longblob, d longblob) engine ndb;
mysql> insert into t1 values (null, load_file('testblob.dat'), load_file('testblob.dat'), load_file('testblob.dat'));

The insert triggers the crash.
[30 Oct 2009 17:45] Andrew Hutchings
Config file

Attachment: config.ini (application/octet-stream, text), 294 bytes.

[30 Oct 2009 17:45] Andrew Hutchings
Logs for crashed node

Attachment: ndb_3_logs.tzr.gz (application/x-gzip, text), 380.89 KiB.

[30 Oct 2009 18:47] Andrew Hutchings
GDB output for crash

Attachment: bug#48441-gdb.txt (text/plain), 3.45 KiB.

[3 Nov 2009 14: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:

  http://lists.mysql.com/commits/89143

3187 Jonas Oreland	2009-11-03
      ndb - bug#48441 - fix so that failing seizeChunk sets p-value to 0 (and fix error code)
[3 Nov 2009 14:42] Jonas Oreland
interestingly enough, this turned out to be ndbmtd specific.
Fixed problem, and fixed so that error code 218 gets correct error message
i.e "Out of LongMessageBuffer"

pushed to 7.0.10
[4 Nov 2009 10:28] Jon Stephens
Documented bugfix in the NDB-7.0.10 changelog as follows:

        When using very large transactions containing many inserts,
        ndbmtd could fail with Signal 11 without an easily detectable
        reason, due to an internal variable being unitialized in the
        event that the LongMessageBuffer was overloaded. Now, the
        variable is initialized in such cases, avoiding the crash, and
        an appropriate error message is generated.

        See also Bug #46914.

Also: 

·Updated NDB error codes listing in docs.
·Fixed typo in LongMessageBuffer parameter info causing bad info to be output in docs

Closed.