Commit 8a59fbc7 authored by unknown's avatar unknown
Browse files

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

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


ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  Auto merged
parents 1665d237 522bbb83
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@ Next NDBCNTR 1000
Next NDBFS 2000
Next DBACC 3002
Next DBTUP 4013
Next DBLQH 5042
Next DBLQH 5043
Next DBDICT 6006
Next DBDIH 7174
Next DBTC 8037
@@ -312,6 +312,8 @@ LQH:
5026  Crash when receiving COPY_ACTIVEREQ
5027  Crash when receiving STAT_RECREQ

5042  Crash starting node, when scan is finished on primary replica

Test Crashes in handling take over
----------------------------------

+9 −0
Original line number Diff line number Diff line
@@ -9220,6 +9220,15 @@ void Dblqh::nextScanConfCopyLab(Signal* signal)
// completion. Signal completion through scanCompletedStatus-flag.
/*---------------------------------------------------------------------------*/
    scanptr.p->scanCompletedStatus = ZTRUE;
    scanptr.p->scanState = ScanRecord::WAIT_LQHKEY_COPY;
    if (ERROR_INSERTED(5042))
    {
      CLEAR_ERROR_INSERT_VALUE;
      tcConnectptr.p->copyCountWords = ~0;
      signal->theData[0] = 9999;
      sendSignal(numberToRef(CMVMI, scanptr.p->scanNodeId),
		 GSN_NDB_TAMPER, signal, 1, JBA);
    }
    return;
  }//if
+20 −7
Original line number Diff line number Diff line
@@ -254,12 +254,6 @@ testcase(int flag)
    ndbout << "tab=" << tab << " cols=" << attrcnt
	<< " size max=" << smax << " tot=" << stot << endl;

    ndb = new Ndb("TEST_DB");
    if (ndb->init() != 0)
	return ndberror("init");
    if (ndb->waitUntilReady(30) < 0)
	return ndberror("waitUntilReady");

    if ((tcon = NdbSchemaCon::startSchemaTrans(ndb)) == 0)
	return ndberror("startSchemaTransaction");
    if ((top = tcon->getNdbSchemaOp()) == 0)
@@ -541,7 +535,6 @@ testcase(int flag)
	    return ndberror("key %d not found", k);
    ndbout << "scanned " << key << endl;

    ndb = 0;
    ndbout << "done" << endl;
    return 0;
}
@@ -605,7 +598,23 @@ NDB_COMMAND(testDataBuffers, "testDataBuffers", "testDataBuffers", "testDataBuff
	    return NDBT_ProgramExit(NDBT_WRONGARGS);
	}
    }

    unsigned ok = true;

    ndb = new Ndb("TEST_DB");
    if (ndb->init() != 0)
    {
	ndberror("init");
	ok = false;
	goto out;
    }
    if (ndb->waitUntilReady(30) < 0)
    {
      ndberror("waitUntilReady");
      ok = false;
      goto out;
    }
    
    for (i = 1; 0 == loopcnt || i <= loopcnt; i++) {
	ndbout << "=== loop " << i << " ===" << endl;
	for (int flag = 0; flag < (1<<testbits); flag++) {
@@ -614,9 +623,13 @@ NDB_COMMAND(testDataBuffers, "testDataBuffers", "testDataBuffers", "testDataBuff
		if (! kontinue)
		    goto out;
	    }
	    NdbDictionary::Dictionary * dict = ndb->getDictionary();
	    dict->dropTable(tab);
	}
    }
    
out:
    delete ndb;
    return NDBT_ProgramExit(ok ? NDBT_OK : NDBT_FAILED);
}