Commit 9a22200e authored by unknown's avatar unknown

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

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


storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
  Auto merged
storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp:
  Auto merged
storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp:
  Auto merged
storage/ndb/test/ndbapi/testNodeRestart.cpp:
  merge
storage/ndb/test/run-test/daily-basic-tests.txt:
  merge
parents 1360c578 61c5b80e
...@@ -91,6 +91,7 @@ Cmvmi::Cmvmi(Block_context& ctx) : ...@@ -91,6 +91,7 @@ Cmvmi::Cmvmi(Block_context& ctx) :
addRecSignal(GSN_DUMP_STATE_ORD, &Cmvmi::execDUMP_STATE_ORD); addRecSignal(GSN_DUMP_STATE_ORD, &Cmvmi::execDUMP_STATE_ORD);
addRecSignal(GSN_TESTSIG, &Cmvmi::execTESTSIG); addRecSignal(GSN_TESTSIG, &Cmvmi::execTESTSIG);
addRecSignal(GSN_NODE_START_REP, &Cmvmi::execNODE_START_REP, true);
subscriberPool.setSize(5); subscriberPool.setSize(5);
...@@ -445,7 +446,8 @@ void Cmvmi::execOPEN_COMREQ(Signal* signal) ...@@ -445,7 +446,8 @@ void Cmvmi::execOPEN_COMREQ(Signal* signal)
if(len == 2){ if(len == 2){
#ifdef ERROR_INSERT #ifdef ERROR_INSERT
if (! (ERROR_INSERTED(9000) && c_error_9000_nodes_mask.get(tStartingNode))) if (! ((ERROR_INSERTED(9000) || ERROR_INSERTED(9002))
&& c_error_9000_nodes_mask.get(tStartingNode)))
#endif #endif
{ {
globalTransporterRegistry.do_connect(tStartingNode); globalTransporterRegistry.do_connect(tStartingNode);
...@@ -466,7 +468,8 @@ void Cmvmi::execOPEN_COMREQ(Signal* signal) ...@@ -466,7 +468,8 @@ void Cmvmi::execOPEN_COMREQ(Signal* signal)
jam(); jam();
#ifdef ERROR_INSERT #ifdef ERROR_INSERT
if (ERROR_INSERTED(9000) && c_error_9000_nodes_mask.get(i)) if ((ERROR_INSERTED(9000) || ERROR_INSERTED(9002))
&& c_error_9000_nodes_mask.get(i))
continue; continue;
#endif #endif
...@@ -1195,9 +1198,9 @@ Cmvmi::execDUMP_STATE_ORD(Signal* signal) ...@@ -1195,9 +1198,9 @@ Cmvmi::execDUMP_STATE_ORD(Signal* signal)
} }
#ifdef ERROR_INSERT #ifdef ERROR_INSERT
if (arg == 9000) if (arg == 9000 || arg == 9002)
{ {
SET_ERROR_INSERT_VALUE(9000); SET_ERROR_INSERT_VALUE(arg);
for (Uint32 i = 1; i<signal->getLength(); i++) for (Uint32 i = 1; i<signal->getLength(); i++)
c_error_9000_nodes_mask.set(signal->theData[i]); c_error_9000_nodes_mask.set(signal->theData[i]);
} }
...@@ -1244,6 +1247,17 @@ Cmvmi::execDUMP_STATE_ORD(Signal* signal) ...@@ -1244,6 +1247,17 @@ Cmvmi::execDUMP_STATE_ORD(Signal* signal)
#endif #endif
}//Cmvmi::execDUMP_STATE_ORD() }//Cmvmi::execDUMP_STATE_ORD()
void
Cmvmi::execNODE_START_REP(Signal* signal)
{
#ifdef ERROR_INSERT
if (ERROR_INSERTED(9002) && signal->theData[0] == getOwnNodeId())
{
signal->theData[0] = 9001;
execDUMP_STATE_ORD(signal);
}
#endif
}
BLOCK_FUNCTIONS(Cmvmi) BLOCK_FUNCTIONS(Cmvmi)
......
...@@ -72,6 +72,7 @@ private: ...@@ -72,6 +72,7 @@ private:
void handleSET_VAR_REQ(Signal* signal); void handleSET_VAR_REQ(Signal* signal);
void execTESTSIG(Signal* signal); void execTESTSIG(Signal* signal);
void execNODE_START_REP(Signal* signal);
char theErrorMessage[256]; char theErrorMessage[256];
void sendSTTORRY(Signal* signal); void sendSTTORRY(Signal* signal);
......
...@@ -256,7 +256,7 @@ Dbdih::Dbdih(Block_context& ctx): ...@@ -256,7 +256,7 @@ Dbdih::Dbdih(Block_context& ctx):
addRecSignal(GSN_DICT_LOCK_CONF, &Dbdih::execDICT_LOCK_CONF); addRecSignal(GSN_DICT_LOCK_CONF, &Dbdih::execDICT_LOCK_CONF);
addRecSignal(GSN_DICT_LOCK_REF, &Dbdih::execDICT_LOCK_REF); addRecSignal(GSN_DICT_LOCK_REF, &Dbdih::execDICT_LOCK_REF);
addRecSignal(GSN_NODE_START_REP, &Dbdih::execNODE_START_REP); addRecSignal(GSN_NODE_START_REP, &Dbdih::execNODE_START_REP, true);
addRecSignal(GSN_START_FRAGREF, addRecSignal(GSN_START_FRAGREF,
&Dbdih::execSTART_FRAGREF); &Dbdih::execSTART_FRAGREF);
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <Vector.hpp> #include <Vector.hpp>
#include <signaldata/DumpStateOrd.hpp> #include <signaldata/DumpStateOrd.hpp>
#include <Bitmask.hpp> #include <Bitmask.hpp>
#include <RefConvert.hpp>
int runLoadTable(NDBT_Context* ctx, NDBT_Step* step){ int runLoadTable(NDBT_Context* ctx, NDBT_Step* step){
...@@ -993,6 +994,39 @@ runBug24543(NDBT_Context* ctx, NDBT_Step* step){ ...@@ -993,6 +994,39 @@ runBug24543(NDBT_Context* ctx, NDBT_Step* step){
{ {
return NDBT_FAILED; return NDBT_FAILED;
} }
return NDBT_OK;
}
int runBug24717(NDBT_Context* ctx, NDBT_Step* step){
int result = NDBT_OK;
int loops = ctx->getNumLoops();
int records = ctx->getNumRecords();
NdbRestarter restarter;
Ndb* pNdb = GETNDB(step);
HugoTransactions hugoTrans(*ctx->getTab());
int dump[] = { 9002, 0 } ;
Uint32 ownNode = refToNode(pNdb->getReference());
dump[1] = ownNode;
for (; loops; loops --)
{
int nodeId = restarter.getRandomNotMasterNodeId(rand());
restarter.restartOneDbNode(nodeId, false, true, true);
restarter.waitNodesNoStart(&nodeId, 1);
if (restarter.dumpStateOneNode(nodeId, dump, 2))
return NDBT_FAILED;
restarter.startNodes(&nodeId, 1);
for (Uint32 i = 0; i < 100; i++)
{
hugoTrans.pkReadRecords(pNdb, 100, 1, NdbOperation::LM_CommittedRead);
}
restarter.waitClusterStarted();
}
return NDBT_OK; return NDBT_OK;
} }
...@@ -1321,6 +1355,9 @@ TESTCASE("Bug21271", ...@@ -1321,6 +1355,9 @@ TESTCASE("Bug21271",
STEP(runPkUpdateUntilStopped); STEP(runPkUpdateUntilStopped);
FINALIZER(runClearTable); FINALIZER(runClearTable);
} }
TESTCASE("Bug24717", ""){
INITIALIZER(runBug24717);
}
NDBT_TESTSUITE_END(testNodeRestart); NDBT_TESTSUITE_END(testNodeRestart);
int main(int argc, const char** argv){ int main(int argc, const char** argv){
......
...@@ -501,6 +501,10 @@ max-time: 1000 ...@@ -501,6 +501,10 @@ max-time: 1000
cmd: testIndex cmd: testIndex
args: -n Bug21384 args: -n Bug21384
max-time: 1000
cmd: testNodeRestart
args: -n Bug24717 T1
# #
# DICT TESTS # DICT TESTS
max-time: 1500 max-time: 1500
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment