Bug #54724 NdbTransaction::refresh() does not reset TransactionInactiveTimeout timer?
Submitted: 23 Jun 2010 8:34 Modified: 16 Aug 2010 9:39
Reporter: Hartmut Holzgraefe 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: Martin Skold CPU Architecture:Any
Tags: all?, mysql-cluster-6.3.29

[23 Jun 2010 8:34] Hartmut Holzgraefe
Description:
When fetching rows from a scan with delays in between the row fetches the ::nextResult() call in the outer loop may fail with error code 296 
"Time-out in NDB, probably caused by deadlock" if the delays within the
inner loop sum up to more than TransactionInactiveTimeout, even if NdbTransaction::refresh() is called after fetching each row

How to repeat:
- set up a cluster with TransactionInactiveTimeout
- fetch data from a table using a scan operation 
- add a call to NdbTransaction::refresh() after each fetch in the inner loop
- add a delay of ~1/3 the inactive timeout after each fetch in the inner loop

-> the ::nextResult() call in the outer loop will run into a timeout error

Suggested fix:
let NdbTransaction::refresh() also reset the inactive timeout counter
[1 Jul 2010 12:41] 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/112667

3230 Martin Skold	2010-07-01
      Bug#54724 NdbTransaction::refresh() does not reset TransactionInactiveTimeout timer?
      modified:
        storage/ndb/src/ndbapi/NdbTransaction.cpp
[12 Jul 2010 9:34] Jon Stephens
Changed category to Cluster APIs. Assuming versions based on push/release dates. Documented in the NDB-6.3.36, 7.0.17, and 7.1.6 changelogs as follows:

        Calling NdbTransaction::refresh() did not update the timer for
        TransactionInactiveTimeout.

Closed.
[9 Aug 2010 10:19] 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/115301

3243 Jonas Oreland	2010-08-09
      ndb - bug#54724 - refix bug, and add testcase
[9 Aug 2010 10:22] Bugs System
Pushed into mysql-5.1-telco-6.3 5.1.47-ndb-6.3.36 (revid:jonas@mysql.com-20100809101919-1snemm8t74g6hxyu) (version source revid:jonas@mysql.com-20100809101919-1snemm8t74g6hxyu) (merge vers: 5.1.47-ndb-6.3.36) (pib:20)
[9 Aug 2010 10:22] Bugs System
Pushed into mysql-5.1-telco-7.0 5.1.47-ndb-7.0.17 (revid:jonas@mysql.com-20100809102017-4k1wg6jtfqon0r81) (version source revid:jonas@mysql.com-20100809102017-4k1wg6jtfqon0r81) (merge vers: 5.1.47-ndb-7.0.17) (pib:20)
[16 Aug 2010 9:39] Jon Stephens
Fix and re-fix were between releases, no new changelog entry necessary. Closed.