List:Commits« Previous MessageNext Message »
From:jonas Date:June 30 2006 9:41am
Subject:bk commit into 4.1 tree (jonas:1.2512) BUG#20774
View as plain text  
Below is the list of changes that have just been committed into a local
4.1 repository of jonas. When jonas does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.2512 06/06/30 09:41:41 jonas@stripped +2 -0
  ndb - bug#20774
    crash if system restart with more than 4096 fragments
    solution: continueb enable expand check loop

  ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
    1.63 06/06/30 09:41:40 jonas@stripped +41 -13
    continueb enable expand check loop

  ndb/src/kernel/blocks/dblqh/Dblqh.hpp
    1.31 06/06/30 09:41:39 jonas@stripped +1 -0
    continueb enable expand check loop

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	jonas
# Host:	perch.ndb.mysql.com
# Root:	/home/jonas/src/41-work

--- 1.30/ndb/src/kernel/blocks/dblqh/Dblqh.hpp	2005-12-08 15:28:13 +01:00
+++ 1.31/ndb/src/kernel/blocks/dblqh/Dblqh.hpp	2006-06-30 09:41:39 +02:00
@@ -232,6 +232,7 @@
 #define ZSCAN_MARKERS 18
 #define ZOPERATION_EVENT_REP 19
 #define ZPREP_DROP_TABLE 20
+#define ZENABLE_EXPAND_CHECK 21
 
 /* ------------------------------------------------------------------------- */
 /*        NODE STATE DURING SYSTEM RESTART, VARIABLES CNODES_SR_STATE        */

--- 1.62/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2006-03-23 11:53:53 +01:00
+++ 1.63/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2006-06-30 09:41:40 +02:00
@@ -434,6 +434,33 @@ void Dblqh::execCONTINUEB(Signal* signal
     checkDropTab(signal);
     return;
     break;
+  case ZENABLE_EXPAND_CHECK:
+  {
+    jam();
+    fragptr.i = signal->theData[1];
+    if (fragptr.i != RNIL)
+    {
+      jam();
+      ptrCheckGuard(fragptr, cfragrecFileSize, fragrecord);
+      signal->theData[0] = fragptr.p->tabRef;
+      signal->theData[1] = fragptr.p->fragId;
+      sendSignal(DBACC_REF, GSN_EXPANDCHECK2, signal, 2, JBB);
+      
+      signal->theData[0] = ZENABLE_EXPAND_CHECK;
+      signal->theData[1] = fragptr.p->nextFrag;
+      sendSignal(DBLQH_REF, GSN_CONTINUEB, signal, 2, JBB);	
+      return;
+    }
+    else
+    {
+      jam();
+      StartRecConf * conf = (StartRecConf*)signal->getDataPtrSend();
+      conf->startingNodeId = getOwnNodeId();
+      sendSignal(cmasterDihBlockref, GSN_START_RECCONF, signal, 
+		 StartRecConf::SignalLength, JBB);
+      return;
+    }
+  }
   default:
     ndbrequire(false);
     break;
@@ -15503,20 +15530,21 @@ void Dblqh::srFourthComp(Signal* signal)
   } else if ((cstartType == NodeState::ST_NODE_RESTART) ||
              (cstartType == NodeState::ST_SYSTEM_RESTART)) {
     jam();
-    StartRecConf * conf = (StartRecConf*)signal->getDataPtrSend();
-    conf->startingNodeId = getOwnNodeId();
-    sendSignal(cmasterDihBlockref, GSN_START_RECCONF, signal, 
-	       StartRecConf::SignalLength, JBB);
 
-    if(cstartType == NodeState::ST_SYSTEM_RESTART){
-      fragptr.i = c_redo_log_complete_frags;
-      while(fragptr.i != RNIL){
-	ptrCheckGuard(fragptr, cfragrecFileSize, fragrecord);
-	signal->theData[0] = fragptr.p->tabRef;
-	signal->theData[1] = fragptr.p->fragId;
-	sendSignal(DBACC_REF, GSN_EXPANDCHECK2, signal, 2, JBB);
-	fragptr.i = fragptr.p->nextFrag;
-      }
+    if(cstartType == NodeState::ST_SYSTEM_RESTART)
+    {
+      jam();
+      signal->theData[0] = ZENABLE_EXPAND_CHECK;
+      signal->theData[1] = c_redo_log_complete_frags;
+      sendSignal(DBLQH_REF, GSN_CONTINUEB, signal, 2, JBB);
+    }
+    else
+    {
+      jam();
+      StartRecConf * conf = (StartRecConf*)signal->getDataPtrSend();
+      conf->startingNodeId = getOwnNodeId();
+      sendSignal(cmasterDihBlockref, GSN_START_RECCONF, signal, 
+		 StartRecConf::SignalLength, JBB);
     }
   } else {
     ndbrequire(false);
Thread
bk commit into 4.1 tree (jonas:1.2512) BUG#20774jonas30 Jun