Commit 66fc547d authored by unknown's avatar unknown
Browse files

Merge orca.ndb.mysql.com:/space_old/pekka/ndb/version/my50

into  orca.ndb.mysql.com:/space_old/pekka/ndb/version/my50-1.2167.1.2


ndb/include/kernel/GlobalSignalNumbers.h:
  Auto merged
ndb/src/common/debugger/signaldata/SignalNames.cpp:
  Auto merged
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
  Auto merged
ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
  Auto merged
ndb/test/run-test/daily-basic-tests.txt:
  Auto merged
parents 0eaae415 001c7f5f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -587,6 +587,7 @@ extern const GlobalSignalNumber NO_OF_SIGNAL_NAMES;
#define GSN_BLOCK_COMMIT_ORD            485
#define GSN_UNBLOCK_COMMIT_ORD          486

#define GSN_NODE_START_REP              502
#define GSN_NODE_STATE_REP              487
#define GSN_CHANGE_NODE_STATE_REQ       488
#define GSN_CHANGE_NODE_STATE_CONF      489
+2 −0
Original line number Diff line number Diff line
@@ -399,6 +399,8 @@ const GsnName SignalNames [] = {
  ,{ GSN_TUP_COM_UNBLOCK,        "TUP_COM_UNBLOCK" }
  ,{ GSN_DUMP_STATE_ORD,         "DUMP_STATE_ORD" }

  ,{ GSN_NODE_START_REP, "NODE_START_REP" }

  ,{ GSN_START_INFOREQ,  "START_INFOREQ" }
  ,{ GSN_START_INFOREF,  "START_INFOREF" }
  ,{ GSN_START_INFOCONF, "START_INFOCONF" }
+8 −4
Original line number Diff line number Diff line
@@ -85,8 +85,12 @@ DIH/s
    START_MECONF
DIH/s

* sp7 - release DICT lock
* (copy data, omitted)

* SL_STARTED - release DICT lock

CNTR/s
    NODE_START_REP
        DIH/s
            DICT_UNLOCK_ORD
                DICT/m
+3 −0
Original line number Diff line number Diff line
@@ -1599,6 +1599,9 @@ private:
   */
  void startInfoReply(Signal *, Uint32 nodeId);

  // DIH specifics for execNODE_START_REP (sendDictUnlockOrd)
  void exec_node_start_rep(Signal* signal);

  /*
   * Lock master DICT.  Only current use is by starting node
   * during NR.  A pool of slave records is convenient anyway.
+22 −18
Original line number Diff line number Diff line
@@ -1356,24 +1356,6 @@ void Dbdih::execNDB_STTOR(Signal* signal)
    }
    ndbrequire(false);
    break;
  case ZNDB_SPH7:
    jam();
    switch (typestart) {
    case NodeState::ST_INITIAL_START:
    case NodeState::ST_SYSTEM_RESTART:
      jam();
      ndbsttorry10Lab(signal, __LINE__);
      return;
    case NodeState::ST_NODE_RESTART:
    case NodeState::ST_INITIAL_NODE_RESTART:
      jam();
      sendDictUnlockOrd(signal, c_dictLockSlavePtrI_nodeRestart);
      c_dictLockSlavePtrI_nodeRestart = RNIL;
      ndbsttorry10Lab(signal, __LINE__);
      return;
    }
    ndbrequire(false);
    break;
  default:
    jam();
    ndbsttorry10Lab(signal, __LINE__);
@@ -1381,6 +1363,27 @@ void Dbdih::execNDB_STTOR(Signal* signal)
  }//switch
}//Dbdih::execNDB_STTOR()

void
Dbdih::exec_node_start_rep(Signal* signal)
{
  /*
   * Send DICT_UNLOCK_ORD when this node is SL_STARTED.
   *
   * Sending it before (sp 7) conflicts with code which assumes
   * SL_STARTING means we are in copy phase of NR.
   *
   * NodeState::starting.restartType is not supposed to be used
   * when SL_STARTED.  Also it seems NODE_START_REP can arrive twice.
   *
   * For these reasons there are no consistency checks and
   * we rely on c_dictLockSlavePtrI_nodeRestart alone.
   */
  if (c_dictLockSlavePtrI_nodeRestart != RNIL) {
    sendDictUnlockOrd(signal, c_dictLockSlavePtrI_nodeRestart);
    c_dictLockSlavePtrI_nodeRestart = RNIL;
  }
}

void
Dbdih::createMutexes(Signal * signal, Uint32 count){
  Callback c = { safe_cast(&Dbdih::createMutex_done), count };
@@ -1605,6 +1608,7 @@ void Dbdih::nodeRestartPh2Lab(Signal* signal)
void Dbdih::recvDictLockConf_nodeRestart(Signal* signal, Uint32 data, Uint32 ret)
{
  ndbrequire(c_dictLockSlavePtrI_nodeRestart == RNIL);
  ndbrequire(data != RNIL);
  c_dictLockSlavePtrI_nodeRestart = data;

  nodeRestartPh2Lab2(signal);
Loading