Commit 44e5052f authored by unknown's avatar unknown

ndb -

  fix test_event -n EventOperationApplier


storage/ndb/test/ndbapi/test_event.cpp:
  fix potential race
storage/ndb/test/src/HugoCalculator.cpp:
  genrate longer varsize keys
parent ee05abd6
...@@ -500,6 +500,12 @@ int runEventMixedLoad(NDBT_Context* ctx, NDBT_Step* step) ...@@ -500,6 +500,12 @@ int runEventMixedLoad(NDBT_Context* ctx, NDBT_Step* step)
int records = ctx->getNumRecords(); int records = ctx->getNumRecords();
HugoTransactions hugoTrans(*ctx->getTab()); HugoTransactions hugoTrans(*ctx->getTab());
if(ctx->getPropertyWait("LastGCI", ~(Uint32)0))
{
g_err << "FAIL " << __LINE__ << endl;
return NDBT_FAILED;
}
while(loops -- && !ctx->isTestStopped()) while(loops -- && !ctx->isTestStopped())
{ {
hugoTrans.clearTable(GETNDB(step), 0); hugoTrans.clearTable(GETNDB(step), 0);
...@@ -606,9 +612,11 @@ int runEventApplier(NDBT_Context* ctx, NDBT_Step* step) ...@@ -606,9 +612,11 @@ int runEventApplier(NDBT_Context* ctx, NDBT_Step* step)
goto end; goto end;
} }
ctx->setProperty("LastGCI", ~(Uint32)0);
ctx->broadcast();
while(!ctx->isTestStopped()) while(!ctx->isTestStopped())
{ {
int r;
int count= 0; int count= 0;
Uint32 stop_gci= ~0; Uint32 stop_gci= ~0;
Uint64 curr_gci = 0; Uint64 curr_gci = 0;
...@@ -778,7 +786,7 @@ int runEventApplier(NDBT_Context* ctx, NDBT_Step* step) ...@@ -778,7 +786,7 @@ int runEventApplier(NDBT_Context* ctx, NDBT_Step* step)
if (trans->getNdbError().status == NdbError::PermanentError) if (trans->getNdbError().status == NdbError::PermanentError)
{ {
g_err << "Ignoring execute " << r << " failed " g_err << "Ignoring execute failed "
<< trans->getNdbError().code << " " << trans->getNdbError().code << " "
<< trans->getNdbError().message << endl; << trans->getNdbError().message << endl;
...@@ -788,7 +796,7 @@ int runEventApplier(NDBT_Context* ctx, NDBT_Step* step) ...@@ -788,7 +796,7 @@ int runEventApplier(NDBT_Context* ctx, NDBT_Step* step)
} }
else if (noRetries++ == 10) else if (noRetries++ == 10)
{ {
g_err << "execute " << r << " failed " g_err << "execute failed "
<< trans->getNdbError().code << " " << trans->getNdbError().code << " "
<< trans->getNdbError().message << endl; << trans->getNdbError().message << endl;
trans->close(); trans->close();
......
...@@ -89,6 +89,27 @@ HugoCalculator::float calcValue(int record, int attrib, int updates) const; ...@@ -89,6 +89,27 @@ HugoCalculator::float calcValue(int record, int attrib, int updates) const;
HugoCalculator::double calcValue(int record, int attrib, int updates) const; HugoCalculator::double calcValue(int record, int attrib, int updates) const;
#endif #endif
static
Uint32
calc_len(Uint32 rvalue, int maxlen)
{
Uint32 minlen = 25;
if ((rvalue >> 16) < 4096)
minlen = 15;
else if ((rvalue >> 16) < 8192)
minlen = 25;
else if ((rvalue >> 16) < 16384)
minlen = 35;
else
minlen = 64;
if (maxlen <= minlen)
return maxlen;
return minlen + (rvalue % (maxlen - minlen));
}
const char* const char*
HugoCalculator::calcValue(int record, HugoCalculator::calcValue(int record,
int attrib, int attrib,
...@@ -178,7 +199,7 @@ HugoCalculator::calcValue(int record, ...@@ -178,7 +199,7 @@ HugoCalculator::calcValue(int record,
break; break;
case NdbDictionary::Column::Varbinary: case NdbDictionary::Column::Varbinary:
case NdbDictionary::Column::Varchar: case NdbDictionary::Column::Varchar:
len = 1 + (myRand(&seed) % (len - 1)); len = calc_len(myRand(&seed), len - 1);
assert(len < 256); assert(len < 256);
* outlen = len + 1; * outlen = len + 1;
* buf = len; * buf = len;
...@@ -186,7 +207,7 @@ HugoCalculator::calcValue(int record, ...@@ -186,7 +207,7 @@ HugoCalculator::calcValue(int record,
goto write_char; goto write_char;
case NdbDictionary::Column::Longvarchar: case NdbDictionary::Column::Longvarchar:
case NdbDictionary::Column::Longvarbinary: case NdbDictionary::Column::Longvarbinary:
len = 1 + (myRand(&seed) % (len - 2)); len = calc_len(myRand(&seed), len - 2);
assert(len < 65536); assert(len < 65536);
* outlen = len + 2; * outlen = len + 2;
int2store(buf, len); int2store(buf, len);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment