Commit cafcd494 authored by unknown's avatar unknown
Browse files

Merge perch.ndb.mysql.com:/home/jonas/src/51-work

into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb

parents 0a065351 c66f1685
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -238,6 +238,7 @@ class Dbtup;
#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        */
+42 −14
Original line number Diff line number Diff line
@@ -416,6 +416,35 @@ void Dblqh::execCONTINUEB(Signal* signal)
    checkDropTab(signal);
    return;
    break;
  case ZENABLE_EXPAND_CHECK:
  {
    jam();
    fragptr.i = signal->theData[1];
    if (fragptr.i != RNIL)
    {
      jam();
      c_redo_complete_fragments.getPtr(fragptr);
      signal->theData[0] = fragptr.p->tabRef;
      signal->theData[1] = fragptr.p->fragId;
      sendSignal(DBACC_REF, GSN_EXPANDCHECK2, signal, 2, JBB);
      c_redo_complete_fragments.next(fragptr);
      signal->theData[0] = ZENABLE_EXPAND_CHECK;
      signal->theData[1] = fragptr.i;
      sendSignal(DBLQH_REF, GSN_CONTINUEB, signal, 2, JBB);	
      return;
    }
    else
    {
      jam();
      c_redo_complete_fragments.remove();
      StartRecConf * conf = (StartRecConf*)signal->getDataPtrSend();
      conf->startingNodeId = getOwnNodeId();
      sendSignal(cmasterDihBlockref, GSN_START_RECCONF, signal, 
		 StartRecConf::SignalLength, JBB);
      return;
    }
  }
  default:
    ndbrequire(false);
    break;
@@ -15659,23 +15688,22 @@ void Dblqh::srFourthComp(Signal* signal)
             (cstartType == NodeState::ST_SYSTEM_RESTART)) {
    jam();
    
    if(cstartType == NodeState::ST_SYSTEM_RESTART)
    {
      jam();
      if (c_redo_complete_fragments.first(fragptr))
      {
	jam();
        signal->theData[0] = ZENABLE_EXPAND_CHECK;
        signal->theData[1] = fragptr.i;
        sendSignal(DBLQH_REF, GSN_CONTINUEB, signal, 2, JBB);
	return;
      }
    }
    StartRecConf * conf = (StartRecConf*)signal->getDataPtrSend();
    conf->startingNodeId = getOwnNodeId();
    sendSignal(cmasterDihBlockref, GSN_START_RECCONF, signal, 
		 StartRecConf::SignalLength, JBB);
    if(cstartType == NodeState::ST_SYSTEM_RESTART){
      c_redo_complete_fragments.first(fragptr);
      while(fragptr.i != RNIL){
	signal->theData[0] = fragptr.p->tabRef;
	signal->theData[1] = fragptr.p->fragId;
	sendSignal(DBACC_REF, GSN_EXPANDCHECK2, signal, 2, JBB);
	c_redo_complete_fragments.next(fragptr);
      }
      c_redo_complete_fragments.remove();
    }
  } else {
    ndbrequire(false);
  }//if