Bug #31482 Cluster table with blob field fails if too many result rows are to be returned
Submitted: 9 Oct 2007 14:26 Modified: 5 Nov 2007 21:31
Reporter: Hartmut Holzgraefe Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S2 (Serious)
Version:5.1.22-ndb-6.3.2 and up OS:Linux
Assigned to: Jonas Oreland CPU Architecture:Any

[9 Oct 2007 14:26] Hartmut Holzgraefe
Description:
On a table with blob contents any query that would return more than a certain ammount of rows fails with 

  query 'SELECT * FROM t1' failed: 1296: Got error 4350 'Transaction already aborted' from NDBCLUSTER

in the attached test case it starts to fail somewhere between 17,000 and 18,000 result rows, the number of rows differs with the ammount of data stored in the blob field though. The smaller the blob contents the more rows are needed to trigger the problem

there is nothing in the mysqld error log, cluster log and data node error logs about this, the ndb_#_out.log files get lots of information dumped to then when this happens though

How to repeat:
see attached test case
[9 Oct 2007 14:49] Hartmut Holzgraefe
mysqltest test case and config.ini (warning: large result file)

Attachment: bug31482.tgz (application/x-gtar, text), 394.90 KiB.

[9 Oct 2007 18:17] Jonas Oreland
this was introduced by fix for bug#29102
(which changes read of blob table to use locks, instead of dirty read)

this has the unfortunate side effect that operation records does not get released
in tc, making it to run out...

hmmm...we could "reinvent" simple read, which reads latest committed with lock but releases lock afterwards...

however, the "send tckeyconf"-optimization from LQH does not work (which is why it was removed in the first place) as LQH has no timeout handling.

/Jonas
[12 Oct 2007 10:52] Jonas Oreland
have patch that fixes problem...
now only need to fix testing...
[15 Oct 2007 7:10] 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/35543

ChangeSet@1.2574, 2007-10-15 09:10:14+02:00, jonas@perch.ndb.mysql.com +17 -0
  ndb - bug#31482
    (re)impl. simple-read (read that releases lock just before LQHKEYCONF)
    use simple-read for blobs
[15 Oct 2007 9:26] 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/35548

ChangeSet@1.2662, 2007-10-15 11:26:11+02:00, jonas@perch.ndb.mysql.com +2 -0
  ndb - 51-ndb -> 6.2 post merge bug#31482
    also fix NdbRecord code path
[17 Oct 2007 12:09] Jon Stephens
Documented bugfix in mysql-5.1-ndb-6.3.5 changelog; left Patch Pending status.
[26 Oct 2007 5:40] Jonas Oreland
pushed to 51-ndb, telco-6.2, telco-6.3 & 51-telco
[5 Nov 2007 13:53] Bugs System
Pushed into 6.0.4-alpha
[5 Nov 2007 13:56] Bugs System
Pushed into 5.1.23-rc
[5 Nov 2007 21:31] Jon Stephens
Also documented in 5.1.23 and 6.0.4 changelogs. Closed.