mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.1-new-ndb
into perch.ndb.mysql.com:/home/jonas/src/51-ndb
This commit is contained in:
commit
12855ff253
4 changed files with 81 additions and 2 deletions
|
@ -11,7 +11,7 @@ Next CMVMI 9000
|
|||
Next BACKUP 10038
|
||||
Next DBUTIL 11002
|
||||
Next DBTUX 12008
|
||||
Next SUMA 13034
|
||||
Next SUMA 13036
|
||||
|
||||
TESTING NODE FAILURE, ARBITRATION
|
||||
---------------------------------
|
||||
|
|
|
@ -4908,6 +4908,21 @@ Suma::release_gci(Signal* signal, Uint32 buck, Uint32 gci)
|
|||
if(gci >= head.m_max_gci)
|
||||
{
|
||||
jam();
|
||||
if (ERROR_INSERTED(13034))
|
||||
{
|
||||
jam();
|
||||
SET_ERROR_INSERT_VALUE(13035);
|
||||
return;
|
||||
}
|
||||
if (ERROR_INSERTED(13035))
|
||||
{
|
||||
CLEAR_ERROR_INSERT_VALUE;
|
||||
NodeReceiverGroup rg(CMVMI, c_nodes_in_nodegroup_mask);
|
||||
rg.m_nodes.clear(getOwnNodeId());
|
||||
signal->theData[0] = 9999;
|
||||
sendSignal(rg, GSN_NDB_TAMPER, signal, 1, JBA);
|
||||
return;
|
||||
}
|
||||
head.m_page_pos = 0;
|
||||
head.m_max_gci = gci;
|
||||
head.m_last_gci = 0;
|
||||
|
@ -4979,7 +4994,6 @@ Suma::start_resend(Signal* signal, Uint32 buck)
|
|||
|
||||
if(min > max)
|
||||
{
|
||||
ndbrequire(pos.m_page_pos <= 2);
|
||||
ndbrequire(pos.m_page_id == bucket->m_buffer_tail);
|
||||
m_active_buckets.set(buck);
|
||||
m_gcp_complete_rep_count ++;
|
||||
|
|
|
@ -1838,6 +1838,61 @@ runBug31701(NDBT_Context* ctx, NDBT_Step* step)
|
|||
return NDBT_OK;
|
||||
}
|
||||
|
||||
int
|
||||
runBug33793(NDBT_Context* ctx, NDBT_Step* step)
|
||||
{
|
||||
int result = NDBT_OK;
|
||||
int loops = ctx->getNumLoops();
|
||||
|
||||
NdbRestarter restarter;
|
||||
|
||||
if (restarter.getNumDbNodes() < 2){
|
||||
ctx->stopTest();
|
||||
return NDBT_OK;
|
||||
}
|
||||
// This should really wait for applier to start...10s is likely enough
|
||||
NdbSleep_SecSleep(10);
|
||||
|
||||
while (loops-- && ctx->isTestStopped() == false)
|
||||
{
|
||||
int nodeId = restarter.getDbNodeId(rand() % restarter.getNumDbNodes());
|
||||
int nodecount = 0;
|
||||
int nodes[255];
|
||||
printf("nodeid: %u : victims: ", nodeId);
|
||||
for (int i = 0; i<restarter.getNumDbNodes(); i++)
|
||||
{
|
||||
int id = restarter.getDbNodeId(i);
|
||||
if (id == nodeId)
|
||||
continue;
|
||||
|
||||
if (restarter.getNodeGroup(id) == restarter.getNodeGroup(nodeId))
|
||||
{
|
||||
nodes[nodecount++] = id;
|
||||
printf("%u ", id);
|
||||
int val2[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 };
|
||||
if (restarter.dumpStateOneNode(id, val2, 2))
|
||||
return NDBT_FAILED;
|
||||
}
|
||||
}
|
||||
printf("\n"); fflush(stdout);
|
||||
|
||||
restarter.insertErrorInNode(nodeId, 13034);
|
||||
if (restarter.waitNodesNoStart(nodes, nodecount))
|
||||
return NDBT_FAILED;
|
||||
|
||||
if (restarter.startNodes(nodes, nodecount))
|
||||
return NDBT_FAILED;
|
||||
|
||||
if (restarter.waitClusterStarted())
|
||||
return NDBT_FAILED;
|
||||
}
|
||||
|
||||
ctx->stopTest();
|
||||
return NDBT_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
NDBT_TESTSUITE(test_event);
|
||||
TESTCASE("BasicEventOperation",
|
||||
"Verify that we can listen to Events"
|
||||
|
@ -1975,6 +2030,12 @@ TESTCASE("Bug31701", ""){
|
|||
FINALIZER(runDropEvent);
|
||||
FINALIZER(runDropShadowTable);
|
||||
}
|
||||
TESTCASE("Bug33793", ""){
|
||||
INITIALIZER(runCreateEvent);
|
||||
STEP(runEventListenerUntilStopped);
|
||||
STEP(runBug33793);
|
||||
FINALIZER(runDropEvent);
|
||||
}
|
||||
NDBT_TESTSUITE_END(test_event);
|
||||
|
||||
int main(int argc, const char** argv){
|
||||
|
|
|
@ -1046,3 +1046,7 @@ max-time: 300
|
|||
cmd: testSystemRestart
|
||||
args: -n Bug22696 T1
|
||||
|
||||
max-time: 300
|
||||
cmd: test_event
|
||||
args: -n Bug33793 T1
|
||||
|
||||
|
|
Loading…
Reference in a new issue