Commit cfab9a44 authored by unknown's avatar unknown

ndb - bug#18781 post-merge 5.0->5.1 fixes (one more to come)

      have to push this to be able to push 5.0


storage/ndb/include/kernel/signaldata/DictLock.hpp:
  Rename: ndb/include/kernel/signaldata/DictLock.hpp -> storage/ndb/include/kernel/signaldata/DictLock.hpp
storage/ndb/src/kernel/blocks/dbdict/DictLock.txt:
  Rename: ndb/src/kernel/blocks/dbdict/DictLock.txt -> storage/ndb/src/kernel/blocks/dbdict/DictLock.txt
storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
  debug
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
  bug#18781 post-merge 5.0->5.1 fixes (one more to come)
storage/ndb/src/ndbapi/ndberror.c:
  bug#18781 post-merge 5.0->5.1 fixes (one more to come)
storage/ndb/test/ndbapi/testDict.cpp:
  bug#18781 post-merge 5.0->5.1 fixes (one more to come)
storage/ndb/test/src/NdbRestarter.cpp:
  bug#18781 post-merge 5.0->5.1 fixes (one more to come)
parent 3dee13cf
...@@ -1082,6 +1082,7 @@ private: ...@@ -1082,6 +1082,7 @@ private:
BlockState& operator=(const BlockState& bs) { BlockState& operator=(const BlockState& bs) {
Dbdict* dict = (Dbdict*)globalData.getBlock(DBDICT); Dbdict* dict = (Dbdict*)globalData.getBlock(DBDICT);
dict->infoEvent("DICT: bs %d->%d", m_value, bs.m_value); dict->infoEvent("DICT: bs %d->%d", m_value, bs.m_value);
globalSignalLoggers.log(DBDICT, "bs %d->%d", m_value, bs.m_value);
m_value = bs.m_value; m_value = bs.m_value;
return *this; return *this;
} }
......
...@@ -15055,13 +15055,14 @@ Dbdih::sendDictLockReq(Signal* signal, Uint32 lockType, Callback c) ...@@ -15055,13 +15055,14 @@ Dbdih::sendDictLockReq(Signal* signal, Uint32 lockType, Callback c)
{ {
Uint32 masterVersion = getNodeInfo(cmasterNodeId).m_version; Uint32 masterVersion = getNodeInfo(cmasterNodeId).m_version;
unsigned int get_major = getMajor(masterVersion); const unsigned int get_major = getMajor(masterVersion);
unsigned int get_minor = getMinor(masterVersion); const unsigned int get_minor = getMinor(masterVersion);
unsigned int get_build = getBuild(masterVersion); const unsigned int get_build = getBuild(masterVersion);
ndbrequire(get_major >= 4);
ndbrequire(get_major == 4 || get_major == 5);
if (masterVersion < NDBD_DICT_LOCK_VERSION_5 || if (masterVersion < NDBD_DICT_LOCK_VERSION_5 ||
masterVersion < NDBD_DICT_LOCK_VERSION_5_1 &&
get_major == 5 && get_minor == 1 ||
ERROR_INSERTED(7176)) { ERROR_INSERTED(7176)) {
jam(); jam();
...@@ -15132,10 +15133,13 @@ Dbdih::sendDictUnlockOrd(Signal* signal, Uint32 lockSlavePtrI) ...@@ -15132,10 +15133,13 @@ Dbdih::sendDictUnlockOrd(Signal* signal, Uint32 lockSlavePtrI)
{ {
Uint32 masterVersion = getNodeInfo(cmasterNodeId).m_version; Uint32 masterVersion = getNodeInfo(cmasterNodeId).m_version;
unsigned int get_major = getMajor(masterVersion); const unsigned int get_major = getMajor(masterVersion);
ndbrequire(get_major == 4 || get_major == 5); const unsigned int get_minor = getMinor(masterVersion);
ndbrequire(get_major >= 4);
if (masterVersion < NDBD_DICT_LOCK_VERSION_5 || if (masterVersion < NDBD_DICT_LOCK_VERSION_5 ||
masterVersion < NDBD_DICT_LOCK_VERSION_5_1 &&
get_major == 5 && get_minor == 1 ||
ERROR_INSERTED(7176)) { ERROR_INSERTED(7176)) {
return; return;
} }
......
...@@ -214,6 +214,7 @@ ErrorBundle ErrorCodes[] = { ...@@ -214,6 +214,7 @@ ErrorBundle ErrorCodes[] = {
* OverloadError * OverloadError
*/ */
{ 701, DMEC, OL, "System busy with other schema operation" }, { 701, DMEC, OL, "System busy with other schema operation" },
{ 711, DMEC, OL, "System busy with node restart, schema operations not allowed" },
{ 410, DMEC, OL, "REDO log files overloaded, consult online manual (decrease TimeBetweenLocalCheckpoints, and|or increase NoOfFragmentLogFiles)" }, { 410, DMEC, OL, "REDO log files overloaded, consult online manual (decrease TimeBetweenLocalCheckpoints, and|or increase NoOfFragmentLogFiles)" },
{ 677, DMEC, OL, "Index UNDO buffers overloaded (increase UndoIndexBuffer)" }, { 677, DMEC, OL, "Index UNDO buffers overloaded (increase UndoIndexBuffer)" },
{ 891, DMEC, OL, "Data UNDO buffers overloaded (increase UndoDataBuffer)" }, { 891, DMEC, OL, "Data UNDO buffers overloaded (increase UndoDataBuffer)" },
......
...@@ -1852,7 +1852,9 @@ runDictOps(NDBT_Context* ctx, NDBT_Step* step) ...@@ -1852,7 +1852,9 @@ runDictOps(NDBT_Context* ctx, NDBT_Step* step)
Ndb* pNdb = GETNDB(step); Ndb* pNdb = GETNDB(step);
NdbDictionary::Dictionary* pDic = pNdb->getDictionary(); NdbDictionary::Dictionary* pDic = pNdb->getDictionary();
const NdbDictionary::Table* pTab = ctx->getTab(); const NdbDictionary::Table* pTab = ctx->getTab();
const char* tabName = pTab->getName(); //const char* tabName = pTab->getName(); //XXX what goes on?
char tabName[40];
strcpy(tabName, pTab->getName());
const unsigned long maxsleep = 100; //ms const unsigned long maxsleep = 100; //ms
...@@ -1888,7 +1890,7 @@ runDictOps(NDBT_Context* ctx, NDBT_Step* step) ...@@ -1888,7 +1890,7 @@ runDictOps(NDBT_Context* ctx, NDBT_Step* step)
// replace by the Retrieved table // replace by the Retrieved table
pTab = pTab2; pTab = pTab2;
int records = myRandom48(ctx->getNumRecords()); int records = ctx->getNumRecords();
g_info << "2: load " << records << " records" << endl; g_info << "2: load " << records << " records" << endl;
HugoTransactions hugoTrans(*pTab); HugoTransactions hugoTrans(*pTab);
if (hugoTrans.loadTable(pNdb, records) != 0) { if (hugoTrans.loadTable(pNdb, records) != 0) {
...@@ -1925,7 +1927,8 @@ runDictOps(NDBT_Context* ctx, NDBT_Step* step) ...@@ -1925,7 +1927,8 @@ runDictOps(NDBT_Context* ctx, NDBT_Step* step)
result = NDBT_FAILED; result = NDBT_FAILED;
break; break;
} }
if (pDic->getNdbError().code != 709) { if (pDic->getNdbError().code != 709 &&
pDic->getNdbError().code != 723) {
const NdbError err = pDic->getNdbError(); const NdbError err = pDic->getNdbError();
g_err << "2: " << tabName << ": verify drop: " << err << endl; g_err << "2: " << tabName << ": verify drop: " << err << endl;
result = NDBT_FAILED; result = NDBT_FAILED;
......
...@@ -329,7 +329,10 @@ NdbRestarter::waitNodesState(int * _nodes, int _num_nodes, ...@@ -329,7 +329,10 @@ NdbRestarter::waitNodesState(int * _nodes, int _num_nodes,
} }
g_info << "State node " << ndbNode->node_id << " " g_info << "State node " << ndbNode->node_id << " "
<< ndb_mgm_get_node_status_string(ndbNode->node_status)<< endl; << ndb_mgm_get_node_status_string(ndbNode->node_status);
if (ndbNode->node_status == NDB_MGM_NODE_STATUS_STARTING)
g_info<< ", start_phase=" << ndbNode->start_phase;
g_info << endl;
assert(ndbNode != NULL); assert(ndbNode != NULL);
......
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