Loading storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp +15 −2 Original line number Diff line number Diff line Loading @@ -1131,12 +1131,25 @@ Cmvmi::execDUMP_STATE_ORD(Signal* signal) return; } if (dumpState->args[0] == DumpStateOrd::CmvmiSetRestartOnErrorInsert){ if (dumpState->args[0] == DumpStateOrd::CmvmiSetRestartOnErrorInsert) { if(signal->getLength() == 1) m_ctx.m_config.setRestartOnErrorInsert((int)NRT_NoStart_Restart); { Uint32 val = (Uint32)NRT_NoStart_Restart; const ndb_mgm_configuration_iterator * p = m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); if(!ndb_mgm_get_int_parameter(p, CFG_DB_STOP_ON_ERROR_INSERT, &val)) { m_ctx.m_config.setRestartOnErrorInsert(val); } } else { m_ctx.m_config.setRestartOnErrorInsert(signal->theData[1]); } } if (dumpState->args[0] == DumpStateOrd::CmvmiTestLongSigWithDelay) { unsigned i; Loading storage/ndb/test/ndbapi/testNodeRestart.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -433,6 +433,11 @@ int runBug15587(NDBT_Context* ctx, NDBT_Step* step){ if (restarter.waitNodesNoStart(&nodeId, 1)) return NDBT_FAILED; int val2[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 }; if (restarter.dumpStateOneNode(nodeId, val2, 2)) return NDBT_FAILED; if (restarter.dumpStateOneNode(nodeId, dump, 2)) return NDBT_FAILED; Loading @@ -444,6 +449,9 @@ int runBug15587(NDBT_Context* ctx, NDBT_Step* step){ if (restarter.waitNodesNoStart(&nodeId, 1)) return NDBT_FAILED; if (restarter.dumpStateOneNode(nodeId, val2, 1)) return NDBT_FAILED; if (restarter.startNodes(&nodeId, 1)) return NDBT_FAILED; Loading Loading @@ -626,6 +634,10 @@ runBug18414(NDBT_Context* ctx, NDBT_Step* step){ goto err; } int val2[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 }; if (restarter.dumpStateOneNode(node2, val2, 2)) goto err; if (restarter.insertErrorInNode(node2, 5003)) goto err; Loading storage/ndb/test/src/NdbBackup.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -291,8 +291,8 @@ NdbBackup::NF(NdbRestarter& _restarter, int *NFDuringBackup_codes, const int sz, << masterNodeId << endl; int val = DumpStateOrd::CmvmiSetRestartOnErrorInsert; CHECK(_restarter.dumpStateOneNode(nodeId, &val, 1) == 0, int val[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 }; CHECK(_restarter.dumpStateOneNode(nodeId, val, 2) == 0, "failed to set RestartOnErrorInsert"); CHECK(_restarter.insertErrorInNode(nodeId, error) == 0, "failed to set error insert"); Loading storage/ndb/test/src/NdbRestarts.cpp +8 −8 Original line number Diff line number Diff line Loading @@ -641,8 +641,8 @@ int restartNFDuringNR(NdbRestarter& _restarter, CHECK(_restarter.waitNodesNoStart(&nodeId, 1) == 0, "waitNodesNoStart failed"); int val = DumpStateOrd::CmvmiSetRestartOnErrorInsert; CHECK(_restarter.dumpStateOneNode(nodeId, &val, 1) == 0, int val[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 } ; CHECK(_restarter.dumpStateOneNode(nodeId, val, 2) == 0, "failed to set RestartOnErrorInsert"); CHECK(_restarter.insertErrorInNode(nodeId, error) == 0, Loading Loading @@ -698,8 +698,8 @@ int restartNFDuringNR(NdbRestarter& _restarter, CHECK(_restarter.waitNodesNoStart(&nodeId, 1) == 0, "waitNodesNoStart failed"); int val = DumpStateOrd::CmvmiSetRestartOnErrorInsert; CHECK(_restarter.dumpStateOneNode(crashNodeId, &val, 2) == 0, int val[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 }; CHECK(_restarter.dumpStateOneNode(crashNodeId, val, 2) == 0, "failed to set RestartOnErrorInsert"); CHECK(_restarter.insertErrorInNode(crashNodeId, error) == 0, Loading Loading @@ -771,8 +771,8 @@ int restartNodeDuringLCP(NdbRestarter& _restarter, << " error code = " << error << endl; { int val = DumpStateOrd::CmvmiSetRestartOnErrorInsert; CHECK(_restarter.dumpStateAllNodes(&val, 1) == 0, int val[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 }; CHECK(_restarter.dumpStateAllNodes(val, 2) == 0, "failed to set RestartOnErrorInsert"); } Loading Loading @@ -812,8 +812,8 @@ int restartNodeDuringLCP(NdbRestarter& _restarter, ndbout << _restart->m_name << " restarting non-master node = " << nodeId << " error code = " << error << endl; int val = DumpStateOrd::CmvmiSetRestartOnErrorInsert; CHECK(_restarter.dumpStateAllNodes(&val, 1) == 0, int val[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 }; CHECK(_restarter.dumpStateAllNodes(val, 2) == 0, "failed to set RestartOnErrorInsert"); CHECK(_restarter.insertErrorInNode(nodeId, error) == 0, Loading Loading
storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp +15 −2 Original line number Diff line number Diff line Loading @@ -1131,12 +1131,25 @@ Cmvmi::execDUMP_STATE_ORD(Signal* signal) return; } if (dumpState->args[0] == DumpStateOrd::CmvmiSetRestartOnErrorInsert){ if (dumpState->args[0] == DumpStateOrd::CmvmiSetRestartOnErrorInsert) { if(signal->getLength() == 1) m_ctx.m_config.setRestartOnErrorInsert((int)NRT_NoStart_Restart); { Uint32 val = (Uint32)NRT_NoStart_Restart; const ndb_mgm_configuration_iterator * p = m_ctx.m_config.getOwnConfigIterator(); ndbrequire(p != 0); if(!ndb_mgm_get_int_parameter(p, CFG_DB_STOP_ON_ERROR_INSERT, &val)) { m_ctx.m_config.setRestartOnErrorInsert(val); } } else { m_ctx.m_config.setRestartOnErrorInsert(signal->theData[1]); } } if (dumpState->args[0] == DumpStateOrd::CmvmiTestLongSigWithDelay) { unsigned i; Loading
storage/ndb/test/ndbapi/testNodeRestart.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -433,6 +433,11 @@ int runBug15587(NDBT_Context* ctx, NDBT_Step* step){ if (restarter.waitNodesNoStart(&nodeId, 1)) return NDBT_FAILED; int val2[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 }; if (restarter.dumpStateOneNode(nodeId, val2, 2)) return NDBT_FAILED; if (restarter.dumpStateOneNode(nodeId, dump, 2)) return NDBT_FAILED; Loading @@ -444,6 +449,9 @@ int runBug15587(NDBT_Context* ctx, NDBT_Step* step){ if (restarter.waitNodesNoStart(&nodeId, 1)) return NDBT_FAILED; if (restarter.dumpStateOneNode(nodeId, val2, 1)) return NDBT_FAILED; if (restarter.startNodes(&nodeId, 1)) return NDBT_FAILED; Loading Loading @@ -626,6 +634,10 @@ runBug18414(NDBT_Context* ctx, NDBT_Step* step){ goto err; } int val2[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 }; if (restarter.dumpStateOneNode(node2, val2, 2)) goto err; if (restarter.insertErrorInNode(node2, 5003)) goto err; Loading
storage/ndb/test/src/NdbBackup.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -291,8 +291,8 @@ NdbBackup::NF(NdbRestarter& _restarter, int *NFDuringBackup_codes, const int sz, << masterNodeId << endl; int val = DumpStateOrd::CmvmiSetRestartOnErrorInsert; CHECK(_restarter.dumpStateOneNode(nodeId, &val, 1) == 0, int val[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 }; CHECK(_restarter.dumpStateOneNode(nodeId, val, 2) == 0, "failed to set RestartOnErrorInsert"); CHECK(_restarter.insertErrorInNode(nodeId, error) == 0, "failed to set error insert"); Loading
storage/ndb/test/src/NdbRestarts.cpp +8 −8 Original line number Diff line number Diff line Loading @@ -641,8 +641,8 @@ int restartNFDuringNR(NdbRestarter& _restarter, CHECK(_restarter.waitNodesNoStart(&nodeId, 1) == 0, "waitNodesNoStart failed"); int val = DumpStateOrd::CmvmiSetRestartOnErrorInsert; CHECK(_restarter.dumpStateOneNode(nodeId, &val, 1) == 0, int val[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 } ; CHECK(_restarter.dumpStateOneNode(nodeId, val, 2) == 0, "failed to set RestartOnErrorInsert"); CHECK(_restarter.insertErrorInNode(nodeId, error) == 0, Loading Loading @@ -698,8 +698,8 @@ int restartNFDuringNR(NdbRestarter& _restarter, CHECK(_restarter.waitNodesNoStart(&nodeId, 1) == 0, "waitNodesNoStart failed"); int val = DumpStateOrd::CmvmiSetRestartOnErrorInsert; CHECK(_restarter.dumpStateOneNode(crashNodeId, &val, 2) == 0, int val[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 }; CHECK(_restarter.dumpStateOneNode(crashNodeId, val, 2) == 0, "failed to set RestartOnErrorInsert"); CHECK(_restarter.insertErrorInNode(crashNodeId, error) == 0, Loading Loading @@ -771,8 +771,8 @@ int restartNodeDuringLCP(NdbRestarter& _restarter, << " error code = " << error << endl; { int val = DumpStateOrd::CmvmiSetRestartOnErrorInsert; CHECK(_restarter.dumpStateAllNodes(&val, 1) == 0, int val[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 }; CHECK(_restarter.dumpStateAllNodes(val, 2) == 0, "failed to set RestartOnErrorInsert"); } Loading Loading @@ -812,8 +812,8 @@ int restartNodeDuringLCP(NdbRestarter& _restarter, ndbout << _restart->m_name << " restarting non-master node = " << nodeId << " error code = " << error << endl; int val = DumpStateOrd::CmvmiSetRestartOnErrorInsert; CHECK(_restarter.dumpStateAllNodes(&val, 1) == 0, int val[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 }; CHECK(_restarter.dumpStateAllNodes(val, 2) == 0, "failed to set RestartOnErrorInsert"); CHECK(_restarter.insertErrorInNode(nodeId, error) == 0, Loading