List:Commits« Previous MessageNext Message »
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
View as plain text  
 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).
Thread
bzr push into mysql-5.1-telco-7.0 branch (pekka.nousiainen:5009 to 5010)WL#5929Pekka Nousiainen25 Oct