diff --git a/ndb/include/kernel/signaldata/DictLock.hpp b/storage/ndb/include/kernel/signaldata/DictLock.hpp similarity index 100% rename from ndb/include/kernel/signaldata/DictLock.hpp rename to storage/ndb/include/kernel/signaldata/DictLock.hpp diff --git a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp index f3243683d76..58656023e4e 100644 --- a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp +++ b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp @@ -1082,6 +1082,7 @@ private: BlockState& operator=(const BlockState& bs) { Dbdict* dict = (Dbdict*)globalData.getBlock(DBDICT); 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; return *this; } diff --git a/ndb/src/kernel/blocks/dbdict/DictLock.txt b/storage/ndb/src/kernel/blocks/dbdict/DictLock.txt similarity index 100% rename from ndb/src/kernel/blocks/dbdict/DictLock.txt rename to storage/ndb/src/kernel/blocks/dbdict/DictLock.txt diff --git a/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp b/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp index 4d9a28f32d4..f55bb3fadd8 100644 --- a/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp +++ b/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp @@ -15055,13 +15055,14 @@ Dbdih::sendDictLockReq(Signal* signal, Uint32 lockType, Callback c) { Uint32 masterVersion = getNodeInfo(cmasterNodeId).m_version; - unsigned int get_major = getMajor(masterVersion); - unsigned int get_minor = getMinor(masterVersion); - unsigned int get_build = getBuild(masterVersion); - - ndbrequire(get_major == 4 || get_major == 5); + const unsigned int get_major = getMajor(masterVersion); + const unsigned int get_minor = getMinor(masterVersion); + const unsigned int get_build = getBuild(masterVersion); + ndbrequire(get_major >= 4); if (masterVersion < NDBD_DICT_LOCK_VERSION_5 || + masterVersion < NDBD_DICT_LOCK_VERSION_5_1 && + get_major == 5 && get_minor == 1 || ERROR_INSERTED(7176)) { jam(); @@ -15132,10 +15133,13 @@ Dbdih::sendDictUnlockOrd(Signal* signal, Uint32 lockSlavePtrI) { Uint32 masterVersion = getNodeInfo(cmasterNodeId).m_version; - unsigned int get_major = getMajor(masterVersion); - ndbrequire(get_major == 4 || get_major == 5); + const unsigned int get_major = getMajor(masterVersion); + const unsigned int get_minor = getMinor(masterVersion); + ndbrequire(get_major >= 4); if (masterVersion < NDBD_DICT_LOCK_VERSION_5 || + masterVersion < NDBD_DICT_LOCK_VERSION_5_1 && + get_major == 5 && get_minor == 1 || ERROR_INSERTED(7176)) { return; } diff --git a/storage/ndb/src/ndbapi/ndberror.c b/storage/ndb/src/ndbapi/ndberror.c index 22252960e21..a2a25e73ec4 100644 --- a/storage/ndb/src/ndbapi/ndberror.c +++ b/storage/ndb/src/ndbapi/ndberror.c @@ -214,6 +214,7 @@ ErrorBundle ErrorCodes[] = { * OverloadError */ { 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)" }, { 677, DMEC, OL, "Index UNDO buffers overloaded (increase UndoIndexBuffer)" }, { 891, DMEC, OL, "Data UNDO buffers overloaded (increase UndoDataBuffer)" }, diff --git a/storage/ndb/test/ndbapi/testDict.cpp b/storage/ndb/test/ndbapi/testDict.cpp index 6eb2ac3fba7..f6277484b04 100644 --- a/storage/ndb/test/ndbapi/testDict.cpp +++ b/storage/ndb/test/ndbapi/testDict.cpp @@ -1852,7 +1852,9 @@ runDictOps(NDBT_Context* ctx, NDBT_Step* step) Ndb* pNdb = GETNDB(step); NdbDictionary::Dictionary* pDic = pNdb->getDictionary(); 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 @@ -1888,7 +1890,7 @@ runDictOps(NDBT_Context* ctx, NDBT_Step* step) // replace by the Retrieved table pTab = pTab2; - int records = myRandom48(ctx->getNumRecords()); + int records = ctx->getNumRecords(); g_info << "2: load " << records << " records" << endl; HugoTransactions hugoTrans(*pTab); if (hugoTrans.loadTable(pNdb, records) != 0) { @@ -1925,7 +1927,8 @@ runDictOps(NDBT_Context* ctx, NDBT_Step* step) result = NDBT_FAILED; break; } - if (pDic->getNdbError().code != 709) { + if (pDic->getNdbError().code != 709 && + pDic->getNdbError().code != 723) { const NdbError err = pDic->getNdbError(); g_err << "2: " << tabName << ": verify drop: " << err << endl; result = NDBT_FAILED; diff --git a/storage/ndb/test/src/NdbRestarter.cpp b/storage/ndb/test/src/NdbRestarter.cpp index 2c16a05240d..b25c42ec18e 100644 --- a/storage/ndb/test/src/NdbRestarter.cpp +++ b/storage/ndb/test/src/NdbRestarter.cpp @@ -329,7 +329,10 @@ NdbRestarter::waitNodesState(int * _nodes, int _num_nodes, } 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);