@@ -963,12 +963,62 @@ int runBug24717(NDBT_Context* ctx, NDBT_Step* step){
963
963
964
964
restarter.startNodes (&nodeId, 1 );
965
965
966
- for (Uint32 i = 0 ; i < 100 ; i++)
967
- {
968
- hugoTrans.pkReadRecords (pNdb, 100 , 1 , NdbOperation::LM_CommittedRead);
969
- }
970
-
966
+ do {
967
+ for (Uint32 i = 0 ; i < 100 ; i++)
968
+ {
969
+ hugoTrans.pkReadRecords (pNdb, 100 , 1 , NdbOperation::LM_CommittedRead);
970
+ }
971
+ } while (restarter.waitClusterStarted (5 ) != 0 );
972
+ }
973
+
974
+ return NDBT_OK;
975
+ }
976
+
977
+ int
978
+ runBug29364 (NDBT_Context* ctx, NDBT_Step* step){
979
+ int result = NDBT_OK;
980
+ int loops = ctx->getNumLoops ();
981
+ int records = ctx->getNumRecords ();
982
+ NdbRestarter restarter;
983
+ Ndb* pNdb = GETNDB (step);
984
+
985
+ HugoTransactions hugoTrans (*ctx->getTab ());
986
+
987
+ if (restarter.getNumDbNodes () < 4 )
988
+ return NDBT_OK;
989
+
990
+ int dump0[] = { 9000 , 0 } ;
991
+ int dump1[] = { 9001 , 0 } ;
992
+ Uint32 ownNode = refToNode (pNdb->getReference ());
993
+ dump0[1 ] = ownNode;
994
+
995
+ for (; loops; loops --)
996
+ {
997
+ int node0 = restarter.getDbNodeId (rand () % restarter.getNumDbNodes ());
998
+ int node1 = restarter.getRandomNodeOtherNodeGroup (node0, rand ());
999
+
1000
+ restarter.restartOneDbNode (node0, false , true , true );
1001
+ restarter.waitNodesNoStart (&node0, 1 );
1002
+ restarter.startNodes (&node0, 1 );
971
1003
restarter.waitClusterStarted ();
1004
+
1005
+ restarter.restartOneDbNode (node1, false , true , true );
1006
+ restarter.waitNodesNoStart (&node1, 1 );
1007
+ if (restarter.dumpStateOneNode (node1, dump0, 2 ))
1008
+ return NDBT_FAILED;
1009
+
1010
+ restarter.startNodes (&node1, 1 );
1011
+
1012
+ do {
1013
+
1014
+ for (Uint32 i = 0 ; i < 100 ; i++)
1015
+ {
1016
+ hugoTrans.pkReadRecords (pNdb, 100 , 1 , NdbOperation::LM_CommittedRead);
1017
+ }
1018
+ } while (restarter.waitClusterStarted (5 ) != 0 );
1019
+
1020
+ if (restarter.dumpStateOneNode (node1, dump1, 1 ))
1021
+ return NDBT_FAILED;
972
1022
}
973
1023
974
1024
return NDBT_OK;
@@ -2075,6 +2125,9 @@ TESTCASE("Bug28023", ""){
2075
2125
TESTCASE (" Bug28717" , " " ){
2076
2126
INITIALIZER (runBug28717);
2077
2127
}
2128
+ TESTCASE (" Bug29364" , " " ){
2129
+ INITIALIZER (runBug29364);
2130
+ }
2078
2131
NDBT_TESTSUITE_END (testNodeRestart);
2079
2132
2080
2133
int main (int argc, const char ** argv){
0 commit comments