Bug #58110 Trying to read same value more than 9000 times lead to hanging transaction
Submitted: 10 Nov 2010 11:50 Modified: 10 Nov 2010 14:57
Reporter: Jonas Oreland Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: NDB API Severity:S3 (Non-critical)
Version:mysql-5.1-telco-6.3 OS:Any
Assigned to: Jonas Oreland CPU Architecture:Any

[10 Nov 2010 11:50] Jonas Oreland
Description:
Doing
readTuple(); followed by 9000 getValue("X"); execute()

leads to executing timing out.
this as message is too big to be sent, and error handling
of this puts transaction in "sent-list" anyway

How to repeat:
testNdbApi -n MaxGetValue T1

Suggested fix:
return correct error code from
NdbTransaction::doSend()
[10 Nov 2010 12:27] 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/123402

3337 Jonas Oreland	2010-11-10
      ndb - bug#58110 - fix incorrect break when doSend returns -1
[10 Nov 2010 12:30] 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/123403

3991 Jonas Oreland	2010-11-10 [merge]
      ndb - bug#58110 - merge plus additional 7.0 change of TcKeyReq::MaxTotalAttrInfo
[10 Nov 2010 12:41] Bugs System
Pushed into mysql-5.1-telco-6.3 5.1.51-ndb-6.3.40 (revid:jonas@mysql.com-20101110122520-qufylnc1q9v0gdu1) (version source revid:jonas@mysql.com-20101110122520-qufylnc1q9v0gdu1) (merge vers: 5.1.51-ndb-6.3.40) (pib:21)
[10 Nov 2010 12:41] Bugs System
Pushed into mysql-5.1-telco-7.0 5.1.51-ndb-7.0.21 (revid:jonas@mysql.com-20101110122834-iloj5vjazc1fpxfb) (version source revid:jonas@mysql.com-20101110122834-iloj5vjazc1fpxfb) (merge vers: 5.1.51-ndb-7.0.21) (pib:21)
[10 Nov 2010 12:49] Jonas Oreland
pushed to 6.3.40, 7.0.21, 7.1.10
[10 Nov 2010 14:57] Jon Stephens
Documented fix in the NDB-6.3.40, 7.0.21, and 7.1.10 changelogs as follows:

        Attempting to read the same value (using getValue()) more than
        9000 times within the same transaction caused the transaction to
        hang when executed. Now when more reads are performed in this
        way than can be accommodated in a single transaction, the call
        to execute() fails with a suitable error.

Closed.