From: Pekka Nousiainen Date: October 24 2012 10:06am Subject: bzr push into mysql-5.1-telco-7.0 branch (pekka.nousiainen:5009 to 5010) WL#5929 List-Archive: http://lists.mysql.com/commits/145111 Message-Id: <20121024100601.29401.90109.5010@cuda> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 5010 Pekka Nousiainen 2012-10-24 wl#5929 sp_marker-x2.diff handle c-a-m databuffer exhaustion modified: storage/ndb/src/kernel/blocks/ERROR_codes.txt storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp storage/ndb/src/ndbapi/ndberror.c storage/ndb/test/ndbapi/testBasic.cpp storage/ndb/test/run-test/daily-basic-tests.txt 5009 Pekka Nousiainen 2012-10-23 wl#5929 sp_marker-x1.diff avoid duplicate node/instance in c-a-m list modified: storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp === modified file 'storage/ndb/src/kernel/blocks/ERROR_codes.txt' --- a/storage/ndb/src/kernel/blocks/ERROR_codes.txt 2011-12-05 13:14:10 +0000 +++ b/storage/ndb/src/kernel/blocks/ERROR_codes.txt 2012-10-24 10:05:26 +0000 @@ -21,7 +21,7 @@ Next DBTUP 4035 Next DBLQH 5075 Next DBDICT 6026 Next DBDIH 7232 -Next DBTC 8092 +Next DBTC 8097 Next CMVMI 9000 Next BACKUP 10042 Next DBUTIL 11002 @@ -393,6 +393,9 @@ DBTC LONG SIGNAL TESTING 8085: Simulate execFIRE_TRIG_ORD DataBuffer exhaustion 8086: Simulate execFIRE_TRIG_ORD segmented section exhaustion +8087: Simulate commit ack marker exhaustion +8096: Simulate commit ack marker databuffer exhaustion + DBLQH LONG SIGNAL TESTING ------------------------- 5051: Send short LQHKEYREQ to next replica === modified file 'storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp' --- a/storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp 2012-10-17 13:08:34 +0000 +++ b/storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp 2012-10-24 10:05:26 +0000 @@ -111,6 +111,7 @@ #define ZCOMMIT_TYPE_ERROR 278 #define ZNO_FREE_TC_MARKER 279 +#define ZNO_FREE_TC_MARKER_DATABUFFER 273 #define ZNODE_SHUTDOWN_IN_PROGRESS 280 #define ZCLUSTER_SHUTDOWN_IN_PROGRESS 281 #define ZWRONG_STATE 282 === modified file 'storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp' --- a/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 2012-10-23 11:06:05 +0000 +++ b/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 2012-10-24 10:05:26 +0000 @@ -1855,6 +1855,13 @@ start_failure: abortErrorLab(signal); return; } + case 67: + { + jam(); + terrorCode = ZNO_FREE_TC_MARKER_DATABUFFER; + abortErrorLab(signal); + return; + } default: jam(); systemErrorLab(signal, __LINE__); @@ -4427,12 +4434,18 @@ void Dbtc::execLQHKEYCONF(Signal* signal for(Uint32 i = 0; i < noOfLqhs; i++) { jam(); + if (ERROR_INSERTED(8096) && i+1 == noOfLqhs) + { + CLEAR_ERROR_INSERT_VALUE; + TCKEY_abort(signal, 67); + return; + } if (!tmp->insert_in_commit_ack_marker(this, regTcPtr->lqhInstanceKey, regTcPtr->tcNodedata[i])) { - ndbout_c("Failed insert_in_commit_ack_marker"); - ; //RONM TODO error handling + TCKEY_abort(signal, 67); + return; } } } === modified file 'storage/ndb/src/ndbapi/ndberror.c' --- a/storage/ndb/src/ndbapi/ndberror.c 2012-09-19 06:37:24 +0000 +++ b/storage/ndb/src/ndbapi/ndberror.c 2012-10-24 10:05:26 +0000 @@ -181,6 +181,7 @@ ErrorBundle ErrorCodes[] = { "Out of operation records in transaction coordinator (increase MaxNoOfConcurrentOperations)" }, { 275, DMEC, TR, "Out of transaction records for complete phase (increase MaxNoOfConcurrentTransactions)" }, { 279, DMEC, TR, "Out of transaction markers in transaction coordinator" }, + { 273, DMEC, TR, "Out of transaction markers databuffer in transaction coordinator" }, { 312, DMEC, TR, "Out of LongMessageBuffer" }, { 414, DMEC, TR, "414" }, { 418, DMEC, TR, "Out of transaction buffers in LQH" }, === modified file 'storage/ndb/test/ndbapi/testBasic.cpp' --- a/storage/ndb/test/ndbapi/testBasic.cpp 2012-06-25 12:55:27 +0000 +++ b/storage/ndb/test/ndbapi/testBasic.cpp 2012-10-24 10:05:26 +0000 @@ -2159,6 +2159,7 @@ runBug54944(NDBT_Context* ctx, NDBT_Step Ndb* pNdb = GETNDB(step); const NdbDictionary::Table * pTab = ctx->getTab(); NdbRestarter res; + int databuffer = ctx->getProperty("DATABUFFER"); for (Uint32 i = 0; i<5; i++) { @@ -2175,7 +2176,10 @@ runBug54944(NDBT_Context* ctx, NDBT_Step hugoOps.execute_NoCommit(pNdb); } - res.insertErrorInAllNodes(8087); + if (!databuffer) + res.insertErrorInAllNodes(8087); + else + res.insertErrorInAllNodes(8096); HugoTransactions hugoTrans(*pTab); hugoTrans.loadTableStartFrom(pNdb, 50000, 100); @@ -3621,6 +3625,12 @@ TESTCASE("Bug54986", "") } TESTCASE("Bug54944", "") { + TC_PROPERTY("DATABUFFER", (Uint32)0); + INITIALIZER(runBug54944); +} +TESTCASE("Bug54944DATABUFFER", "") +{ + TC_PROPERTY("DATABUFFER", (Uint32)1); INITIALIZER(runBug54944); } TESTCASE("Bug59496_case1", "") === modified file 'storage/ndb/test/run-test/daily-basic-tests.txt' --- a/storage/ndb/test/run-test/daily-basic-tests.txt 2012-09-21 12:26:26 +0000 +++ b/storage/ndb/test/run-test/daily-basic-tests.txt 2012-10-24 10:05:26 +0000 @@ -305,6 +305,10 @@ max-time: 500 cmd: testBasic args: -n Bug54944 T1 +max-time: 500 +cmd: testBasic +args: -n Bug54944DATABUFFER T1 + max-time: 600 cmd: testBasic args: -r 10 -n Bug59496_case1 T2 No bundle (reason: useless for push emails).