Bug #47329 Endless 4006 in startTransaction()/getScanOperation() + node-failure scenario
| Submitted: | 15 Sep 2009 13:56 | Modified: | 16 Sep 2009 13:38 |
|---|---|---|---|
| Reporter: | Jonas Oreland | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Cluster: Cluster (NDB) storage engine | Severity: | S3 (Non-critical) |
| Version: | mysql-5.1-telco-6.2 | OS: | Any |
| Assigned to: | Jonas Oreland | CPU Architecture: | Any |
[15 Sep 2009 16:52]
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/83313 2999 Jonas Oreland 2009-09-15 ndb - bug#47329 - release unusable NdbTransaction-object on closeTransaction
[15 Sep 2009 17:02]
Bugs System
Pushed into 5.1.37-ndb-6.3.27 (revid:jonas@mysql.com-20090915165710-mro7wyb4547aqje1) (version source revid:jonas@mysql.com-20090915165710-mro7wyb4547aqje1) (merge vers: 5.1.37-ndb-6.3.27) (pib:11)
[15 Sep 2009 17:02]
Bugs System
Pushed into 5.1.37-ndb-7.0.8 (revid:jonas@mysql.com-20090915165909-j9hf2cmeavek8t5l) (version source revid:jonas@mysql.com-20090915165909-j9hf2cmeavek8t5l) (merge vers: 5.1.37-ndb-7.0.8) (pib:11)
[15 Sep 2009 17:03]
Bugs System
Pushed into 5.1.35-ndb-7.1.0 (revid:jonas@mysql.com-20090915170148-jh1wiy6upn3yipjl) (version source revid:jonas@mysql.com-20090915170148-jh1wiy6upn3yipjl) (merge vers: 5.1.35-ndb-7.1.0) (pib:11)
[15 Sep 2009 17:06]
Jonas Oreland
also pushed to 6.2.19
[15 Sep 2009 20:40]
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/83380 3008 Martin Skold 2009-09-15 [merge] Merge added: storage/ndb/test/run-test/conf-ndb07.cnf modified: storage/ndb/src/common/portlib/NdbDir.cpp storage/ndb/src/kernel/blocks/ERROR_codes.txt storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp storage/ndb/src/ndbapi/Ndb.cpp storage/ndb/test/ndbapi/testSystemRestart.cpp storage/ndb/test/run-test/Makefile.am storage/ndb/test/src/UtilTransactions.cpp
[15 Sep 2009 21:04]
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/83385 3010 Martin Skold 2009-09-15 [merge] Merge added: storage/ndb/test/run-test/conf-ndb07.cnf modified: storage/ndb/src/common/portlib/NdbDir.cpp storage/ndb/src/kernel/blocks/ERROR_codes.txt storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp storage/ndb/src/ndbapi/Ndb.cpp storage/ndb/test/ndbapi/testSystemRestart.cpp storage/ndb/test/run-test/Makefile.am storage/ndb/test/src/UtilTransactions.cpp
[15 Sep 2009 21:05]
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/83388 3051 Martin Skold 2009-09-15 [merge] Merge added: storage/ndb/test/run-test/conf-ndb07.cnf modified: storage/ndb/src/kernel/blocks/ERROR_codes.txt storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp storage/ndb/src/ndbapi/Ndb.cpp storage/ndb/test/ndbapi/testSystemRestart.cpp storage/ndb/test/run-test/Makefile.am storage/ndb/test/src/UtilTransactions.cpp
[15 Sep 2009 21: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/83390 2996 Martin Skold 2009-09-15 [merge] Merge modified: storage/ndb/src/ndbapi/Ndb.cpp storage/ndb/test/src/UtilTransactions.cpp
[16 Sep 2009 13:38]
Jon Stephens
Documetned bugfix in the NDB-6.2.19, 6.3.27, and 7.0.8 changelogs, as follows:
In some circumstances, if an API node encountered a data node
failure between the creation of a transaction and the start of a
scan using that transaction, then any subsequent calls to
startTransaction() and closeTransaction() could cause the same
transaction to be started and closed repeatedly.
Closed.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.042 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: Using a pattern like this 0 loop: 1 p = startTransaction(); 2 o = p->getNdbScanOperation(); 3 if (o == 0 && p->getNdbError().status == NdbError::TemporaryError) 4 { 5 p->close(); 6 goto loop; 7 } Could in some (rare) scenarios end up in infinite loop. (if api-node discovered node-failure in between 1 and 2) This as getNdbScanOperation() will detect if node (that p is connected to) is dead, but startTransaction()/closeTransaction() will not, causing the same transaction to be started/closed endlessly. How to repeat: "testIndex -n NFNR3 T6 T13" reproduces semi-consistent in autotest. Suggested fix: in closeTransaction() (step 5 above) check if sequence no is correct, and if not remove the transaction from pool transactions allocated from ndbd.