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)
int records = ctx->getNumRecords();
HugoTransactions hugoTrans(*ctx->getTab());
if(ctx->getPropertyWait("LastGCI", ~(Uint32)0))
{
g_err << "FAIL " << __LINE__ << endl;
return NDBT_FAILED;
}
while(loops -- && !ctx->isTestStopped())
{
hugoTrans.clearTable(GETNDB(step), 0);
......@@ -606,9 +612,11 @@ int runEventApplier(NDBT_Context* ctx, NDBT_Step* step)
goto end;
}
ctx->setProperty("LastGCI", ~(Uint32)0);
ctx->broadcast();
while(!ctx->isTestStopped())
{
int r;
int count= 0;
Uint32 stop_gci= ~0;
Uint64 curr_gci = 0;
......@@ -778,7 +786,7 @@ int runEventApplier(NDBT_Context* ctx, NDBT_Step* step)
if (trans->getNdbError().status == NdbError::PermanentError)
{
g_err << "Ignoring execute " << r << " failed "
g_err << "Ignoring execute failed "
<< trans->getNdbError().code << " "
<< trans->getNdbError().message << endl;
......@@ -788,7 +796,7 @@ int runEventApplier(NDBT_Context* ctx, NDBT_Step* step)
}
else if (noRetries++ == 10)
{
g_err << "execute " << r << " failed "
g_err << "execute failed "
<< trans->getNdbError().code << " "
<< trans->getNdbError().message << endl;
trans->close();
......
......@@ -89,6 +89,27 @@ HugoCalculator::float calcValue(int record, int attrib, int updates) const;
HugoCalculator::double calcValue(int record, int attrib, int updates) const;
#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*
HugoCalculator::calcValue(int record,
int attrib,
......@@ -178,7 +199,7 @@ HugoCalculator::calcValue(int record,
break;
case NdbDictionary::Column::Varbinary:
case NdbDictionary::Column::Varchar:
len = 1 + (myRand(&seed) % (len - 1));
len = calc_len(myRand(&seed), len - 1);
assert(len < 256);
* outlen = len + 1;
* buf = len;
......@@ -186,7 +207,7 @@ HugoCalculator::calcValue(int record,
goto write_char;
case NdbDictionary::Column::Longvarchar:
case NdbDictionary::Column::Longvarbinary:
len = 1 + (myRand(&seed) % (len - 2));
len = calc_len(myRand(&seed), len - 2);
assert(len < 65536);
* outlen = len + 2;
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