mirror of
https://github.com/MariaDB/server.git
synced 2026-04-28 11:15:33 +02:00
bug8262 - ndb
crash if scan is poped from queue before all attrinfo has arrived ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: only restart scan if all attrinfo has arrived otherwise just set remove from queue and set state ndb/src/kernel/blocks/dbtc/DbtcMain.cpp: new error insert - force send attrinfo ndb/test/ndbapi/testScan.cpp: new test bug8262 many threads - scanning small tables ndb/test/run-test/daily-basic-tests.txt: run new test case in autotest
This commit is contained in:
parent
4d1441dac4
commit
37b4b89ebe
4 changed files with 49 additions and 8 deletions
|
|
@ -35,7 +35,8 @@ getTable(Ndb* pNdb, int i){
|
|||
|
||||
int runLoadTable(NDBT_Context* ctx, NDBT_Step* step){
|
||||
|
||||
int records = ctx->getNumRecords();
|
||||
int records = ctx->getProperty("Rows", ctx->getNumRecords());
|
||||
|
||||
HugoTransactions hugoTrans(*ctx->getTab());
|
||||
if (hugoTrans.loadTable(GETNDB(step), records) != 0){
|
||||
return NDBT_FAILED;
|
||||
|
|
@ -264,7 +265,7 @@ int runVerifyTable(NDBT_Context* ctx, NDBT_Step* step){
|
|||
|
||||
int runScanRead(NDBT_Context* ctx, NDBT_Step* step){
|
||||
int loops = ctx->getNumLoops();
|
||||
int records = ctx->getNumRecords();
|
||||
int records = ctx->getProperty("Rows", ctx->getNumRecords());
|
||||
int parallelism = ctx->getProperty("Parallelism", 240);
|
||||
int abort = ctx->getProperty("AbortProb", 5);
|
||||
|
||||
|
|
@ -375,7 +376,20 @@ int runScanReadError(NDBT_Context* ctx, NDBT_Step* step){
|
|||
restarter.insertErrorInAllNodes(0);
|
||||
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 result = NDBT_OK;
|
||||
int loops = ctx->getNumLoops();
|
||||
|
|
@ -1221,6 +1235,16 @@ TESTCASE("ScanRead100",
|
|||
STEPS(runScanRead, 100);
|
||||
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",
|
||||
"Verify scan requirement: Scan with 40 simultaneous threads. "\
|
||||
"Use random table for the scan"){
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue