mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge
configure.in: Auto merged ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: Auto merged ndb/src/kernel/blocks/dbtc/DbtcMain.cpp: Auto merged ndb/test/ndbapi/testScan.cpp: Auto merged ndb/test/src/NDBT_Test.cpp: Auto merged ndb/test/run-test/daily-basic-tests.txt: SCCS merged
This commit is contained in:
@ -8817,13 +8817,14 @@ void Dblqh::finishScanrec(Signal* signal)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ndbrequire(restart.p->scanState == ScanRecord::IN_QUEUE);
|
||||||
|
|
||||||
ScanRecordPtr tmpScan = scanptr;
|
ScanRecordPtr tmpScan = scanptr;
|
||||||
TcConnectionrecPtr tmpTc = tcConnectptr;
|
TcConnectionrecPtr tmpTc = tcConnectptr;
|
||||||
|
|
||||||
tcConnectptr.i = restart.p->scanTcrec;
|
tcConnectptr.i = restart.p->scanTcrec;
|
||||||
ptrCheckGuard(tcConnectptr, ctcConnectrecFileSize, tcConnectionrec);
|
ptrCheckGuard(tcConnectptr, ctcConnectrecFileSize, tcConnectionrec);
|
||||||
restart.p->scanNumber = scanNumber;
|
restart.p->scanNumber = scanNumber;
|
||||||
restart.p->scanState = ScanRecord::WAIT_ACC_SCAN;
|
|
||||||
|
|
||||||
queue.remove(restart);
|
queue.remove(restart);
|
||||||
scans.add(restart);
|
scans.add(restart);
|
||||||
@ -8838,10 +8839,18 @@ void Dblqh::finishScanrec(Signal* signal)
|
|||||||
ndbout_c("adding-r (%d %d)", restart.p->scanNumber, restart.p->fragPtrI);
|
ndbout_c("adding-r (%d %d)", restart.p->scanNumber, restart.p->fragPtrI);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
scanptr = restart;
|
restart.p->scanState = ScanRecord::SCAN_FREE; // set in initScanRec
|
||||||
continueAfterReceivingAllAiLab(signal);
|
if(tcConnectptr.p->transactionState == TcConnectionrec::SCAN_STATE_USED)
|
||||||
|
{
|
||||||
|
jam();
|
||||||
|
scanptr = restart;
|
||||||
|
continueAfterReceivingAllAiLab(signal);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ndbrequire(tcConnectptr.p->transactionState == TcConnectionrec::WAIT_SCAN_AI);
|
||||||
|
}
|
||||||
scanptr = tmpScan;
|
scanptr = tmpScan;
|
||||||
tcConnectptr = tmpTc;
|
tcConnectptr = tmpTc;
|
||||||
}//Dblqh::finishScanrec()
|
}//Dblqh::finishScanrec()
|
||||||
|
@ -9220,6 +9220,8 @@ void Dbtc::execDIGETPRIMCONF(Signal* signal)
|
|||||||
scanFragptr.p->lqhBlockref = ref;
|
scanFragptr.p->lqhBlockref = ref;
|
||||||
scanFragptr.p->m_connectCount = getNodeInfo(tnodeid).m_connectCount;
|
scanFragptr.p->m_connectCount = getNodeInfo(tnodeid).m_connectCount;
|
||||||
sendScanFragReq(signal, scanptr.p, scanFragptr.p);
|
sendScanFragReq(signal, scanptr.p, scanFragptr.p);
|
||||||
|
if(ERROR_INSERTED(8035))
|
||||||
|
globalTransporterRegistry.performSend();
|
||||||
attrbufptr.i = cachePtr.p->firstAttrbuf;
|
attrbufptr.i = cachePtr.p->firstAttrbuf;
|
||||||
while (attrbufptr.i != RNIL) {
|
while (attrbufptr.i != RNIL) {
|
||||||
jam();
|
jam();
|
||||||
@ -9229,6 +9231,8 @@ void Dbtc::execDIGETPRIMCONF(Signal* signal)
|
|||||||
attrbufptr.p,
|
attrbufptr.p,
|
||||||
ref);
|
ref);
|
||||||
attrbufptr.i = attrbufptr.p->attrbuf[ZINBUF_NEXT];
|
attrbufptr.i = attrbufptr.p->attrbuf[ZINBUF_NEXT];
|
||||||
|
if(ERROR_INSERTED(8035))
|
||||||
|
globalTransporterRegistry.performSend();
|
||||||
}//while
|
}//while
|
||||||
scanFragptr.p->scanFragState = ScanFragRec::LQH_ACTIVE;
|
scanFragptr.p->scanFragState = ScanFragRec::LQH_ACTIVE;
|
||||||
scanFragptr.p->startFragTimer(ctcTimer);
|
scanFragptr.p->startFragTimer(ctcTimer);
|
||||||
|
@ -35,7 +35,8 @@ getTable(Ndb* pNdb, int i){
|
|||||||
|
|
||||||
int runLoadTable(NDBT_Context* ctx, NDBT_Step* step){
|
int runLoadTable(NDBT_Context* ctx, NDBT_Step* step){
|
||||||
|
|
||||||
int records = ctx->getNumRecords();
|
int records = ctx->getProperty("Rows", ctx->getNumRecords());
|
||||||
|
|
||||||
HugoTransactions hugoTrans(*ctx->getTab());
|
HugoTransactions hugoTrans(*ctx->getTab());
|
||||||
if (hugoTrans.loadTable(GETNDB(step), records) != 0){
|
if (hugoTrans.loadTable(GETNDB(step), records) != 0){
|
||||||
return NDBT_FAILED;
|
return NDBT_FAILED;
|
||||||
@ -264,7 +265,7 @@ int runVerifyTable(NDBT_Context* ctx, NDBT_Step* step){
|
|||||||
|
|
||||||
int runScanRead(NDBT_Context* ctx, NDBT_Step* step){
|
int runScanRead(NDBT_Context* ctx, NDBT_Step* step){
|
||||||
int loops = ctx->getNumLoops();
|
int loops = ctx->getNumLoops();
|
||||||
int records = ctx->getNumRecords();
|
int records = ctx->getProperty("Rows", ctx->getNumRecords());
|
||||||
int parallelism = ctx->getProperty("Parallelism", 240);
|
int parallelism = ctx->getProperty("Parallelism", 240);
|
||||||
int abort = ctx->getProperty("AbortProb", 5);
|
int abort = ctx->getProperty("AbortProb", 5);
|
||||||
|
|
||||||
@ -375,7 +376,20 @@ int runScanReadError(NDBT_Context* ctx, NDBT_Step* step){
|
|||||||
restarter.insertErrorInAllNodes(0);
|
restarter.insertErrorInAllNodes(0);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
runInsertError(NDBT_Context* ctx, NDBT_Step* step){
|
||||||
|
int error = ctx->getProperty("ErrorCode");
|
||||||
|
NdbRestarter restarter;
|
||||||
|
|
||||||
|
ctx->setProperty("ErrorCode", (Uint32)0);
|
||||||
|
if (restarter.insertErrorInAllNodes(error) != 0){
|
||||||
|
ndbout << "Could not insert error in all nodes "<<endl;
|
||||||
|
return NDBT_FAILED;
|
||||||
|
}
|
||||||
|
return NDBT_OK;
|
||||||
|
}
|
||||||
|
|
||||||
int runScanReadErrorOneNode(NDBT_Context* ctx, NDBT_Step* step){
|
int runScanReadErrorOneNode(NDBT_Context* ctx, NDBT_Step* step){
|
||||||
int result = NDBT_OK;
|
int result = NDBT_OK;
|
||||||
int loops = ctx->getNumLoops();
|
int loops = ctx->getNumLoops();
|
||||||
@ -1258,6 +1272,16 @@ TESTCASE("ScanRead100",
|
|||||||
STEPS(runScanRead, 100);
|
STEPS(runScanRead, 100);
|
||||||
FINALIZER(runClearTable);
|
FINALIZER(runClearTable);
|
||||||
}
|
}
|
||||||
|
TESTCASE("Scan-bug8262",
|
||||||
|
""){
|
||||||
|
TC_PROPERTY("Rows", 1);
|
||||||
|
TC_PROPERTY("ErrorCode", 8035);
|
||||||
|
INITIALIZER(runLoadTable);
|
||||||
|
INITIALIZER(runInsertError); // Will reset error code
|
||||||
|
STEPS(runScanRead, 25);
|
||||||
|
FINALIZER(runInsertError);
|
||||||
|
FINALIZER(runClearTable);
|
||||||
|
}
|
||||||
TESTCASE("ScanRead40RandomTable",
|
TESTCASE("ScanRead40RandomTable",
|
||||||
"Verify scan requirement: Scan with 40 simultaneous threads. "\
|
"Verify scan requirement: Scan with 40 simultaneous threads. "\
|
||||||
"Use random table for the scan"){
|
"Use random table for the scan"){
|
||||||
|
@ -353,6 +353,10 @@ max-time: 500
|
|||||||
cmd: testScan
|
cmd: testScan
|
||||||
args: -n ScanRestart T1
|
args: -n ScanRestart T1
|
||||||
|
|
||||||
|
max-time: 500
|
||||||
|
cmd: testScan
|
||||||
|
args: -l 100 -n Scan-bug8262 T7
|
||||||
|
|
||||||
max-time: 500
|
max-time: 500
|
||||||
cmd: testScan
|
cmd: testScan
|
||||||
args: -n ScanParallelism
|
args: -n ScanParallelism
|
||||||
|
Reference in New Issue
Block a user