diff options
author | unknown <tomas@poseidon.ndb.mysql.com> | 2005-10-07 01:12:46 +0200 |
---|---|---|
committer | unknown <tomas@poseidon.ndb.mysql.com> | 2005-10-07 01:12:46 +0200 |
commit | 1dc04d119f354079c0a456175fbd9afd639661e5 (patch) | |
tree | 73ff186be5c6524a0a96e1d6359b8f58263b7a4c /storage/ndb/src/kernel/blocks/ndbcntr | |
parent | 47a3ddcf2fd1510f631239a541a93a501dcef34b (diff) | |
parent | 282e2c0245548c42c4e164f7c00e38c73be4fc73 (diff) | |
download | mariadb-git-1dc04d119f354079c0a456175fbd9afd639661e5.tar.gz |
Merge
BUILD/SETUP.sh:
Auto merged
configure.in:
Auto merged
BitKeeper/deleted/.del-ErrorMessages.hpp~9ab815d55a13433a:
Auto merged
ndb/include/mgmapi/ndbd_exit_codes.h:
Auto merged
ndb/src/kernel/error/ndbd_exit_codes.c:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/log.cc:
Auto merged
storage/innobase/os/os0sync.c:
Auto merged
storage/ndb/include/Makefile.am:
Auto merged
storage/ndb/include/kernel/signaldata/EventReport.hpp:
Auto merged
storage/ndb/include/kernel/signaldata/FsRef.hpp:
Auto merged
storage/ndb/include/kernel/signaldata/SystemError.hpp:
Auto merged
storage/ndb/include/mgmapi/mgmapi.h:
Auto merged
storage/ndb/src/common/debugger/EventLogger.cpp:
Auto merged
storage/ndb/src/common/debugger/signaldata/FsRef.cpp:
Auto merged
storage/ndb/src/kernel/main.cpp:
Auto merged
storage/ndb/src/kernel/blocks/backup/Backup.cpp:
Auto merged
storage/ndb/src/kernel/blocks/backup/Backup.hpp:
Auto merged
storage/ndb/src/kernel/blocks/backup/BackupInit.cpp:
Auto merged
storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
Auto merged
storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupSystemRestart.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp:
Auto merged
storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp:
Auto merged
storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp:
Auto merged
storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp:
Auto merged
storage/ndb/src/kernel/blocks/ndbfs/Filename.cpp:
Auto merged
storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.hpp:
Auto merged
storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp:
Auto merged
storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp:
Auto merged
storage/ndb/src/kernel/blocks/ndbfs/OpenFiles.hpp:
Auto merged
storage/ndb/src/kernel/blocks/ndbfs/VoidFs.cpp:
Auto merged
storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
Auto merged
storage/ndb/src/kernel/blocks/qmgr/QmgrInit.cpp:
Auto merged
storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
Auto merged
storage/ndb/src/kernel/blocks/suma/Suma.hpp:
Auto merged
storage/ndb/src/kernel/blocks/trix/Trix.cpp:
Auto merged
storage/ndb/src/kernel/blocks/trix/Trix.hpp:
Auto merged
storage/ndb/src/kernel/error/ErrorHandlingMacros.hpp:
Auto merged
storage/ndb/src/kernel/error/ErrorReporter.cpp:
Auto merged
storage/ndb/src/kernel/error/ErrorReporter.hpp:
Auto merged
storage/ndb/src/kernel/error/Makefile.am:
Auto merged
storage/ndb/src/kernel/vm/ArrayPool.hpp:
Auto merged
storage/ndb/src/kernel/vm/CArray.hpp:
Auto merged
storage/ndb/src/kernel/vm/ClusterConfiguration.cpp:
Auto merged
storage/ndb/src/kernel/vm/Configuration.cpp:
Auto merged
storage/ndb/src/kernel/vm/Configuration.hpp:
Auto merged
storage/ndb/src/kernel/vm/Emulator.cpp:
Auto merged
storage/ndb/src/kernel/vm/FastScheduler.cpp:
Auto merged
storage/ndb/src/kernel/vm/Makefile.am:
Auto merged
storage/ndb/src/kernel/vm/SafeCounter.cpp:
Auto merged
storage/ndb/src/kernel/vm/SafeCounter.hpp:
Auto merged
storage/ndb/src/kernel/vm/SimulatedBlock.cpp:
Auto merged
storage/ndb/src/kernel/vm/SimulatedBlock.hpp:
Auto merged
storage/ndb/src/kernel/vm/TimeQueue.cpp:
Auto merged
storage/ndb/src/kernel/vm/TransporterCallback.cpp:
Auto merged
storage/ndb/src/kernel/vm/WatchDog.cpp:
Auto merged
storage/ndb/src/kernel/vm/WatchDog.hpp:
Auto merged
storage/ndb/src/kernel/vm/pc.hpp:
Auto merged
storage/ndb/src/mgmapi/Makefile.am:
Auto merged
storage/ndb/src/mgmapi/mgmapi.cpp:
Auto merged
storage/ndb/src/mgmapi/ndb_logevent.cpp:
Auto merged
storage/ndb/src/mgmclient/CommandInterpreter.cpp:
Auto merged
storage/ndb/src/mgmsrv/MgmtSrvr.hpp:
Auto merged
storage/ndb/src/mgmsrv/Services.cpp:
Auto merged
storage/ndb/src/ndbapi/NdbRecAttr.cpp:
Auto merged
storage/ndb/src/ndbapi/ndberror.c:
Auto merged
strings/ctype-big5.c:
Auto merged
strings/ctype-ucs2.c:
Auto merged
config/ac-macros/ha_ndbcluster.m4:
merge
extra/perror.c:
merge
storage/ndb/include/mgmapi/ndb_logevent.h:
merge
storage/ndb/src/kernel/blocks/suma/SumaInit.cpp:
merge
storage/ndb/src/mgmsrv/MgmtSrvr.cpp:
merge
storage/ndb/src/mgmsrv/Services.hpp:
SCCS merged
Diffstat (limited to 'storage/ndb/src/kernel/blocks/ndbcntr')
-rw-r--r-- | storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp | 3 | ||||
-rw-r--r-- | storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp | 1 | ||||
-rw-r--r-- | storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp | 123 |
3 files changed, 76 insertions, 51 deletions
diff --git a/storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp b/storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp index c88779792dc..ced03676957 100644 --- a/storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp +++ b/storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp @@ -174,6 +174,7 @@ private: // Received signals void execDUMP_STATE_ORD(Signal* signal); + void execREAD_CONFIG_REQ(Signal* signal); void execSTTOR(Signal* signal); void execTCSEIZECONF(Signal* signal); void execTCSEIZEREF(Signal* signal); @@ -225,7 +226,7 @@ private: CheckNodeGroups::Output checkNodeGroups(Signal*, const NdbNodeBitmask &); // Generated statement blocks - void systemErrorLab(Signal* signal); + void systemErrorLab(Signal* signal, int line); void createSystableLab(Signal* signal, unsigned index); void crSystab7Lab(Signal* signal); diff --git a/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp b/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp index 18f4b9fe0bf..b5843dcf432 100644 --- a/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp +++ b/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp @@ -61,6 +61,7 @@ Ndbcntr::Ndbcntr(const class Configuration & conf): // Received signals addRecSignal(GSN_DUMP_STATE_ORD, &Ndbcntr::execDUMP_STATE_ORD); + addRecSignal(GSN_READ_CONFIG_REQ, &Ndbcntr::execREAD_CONFIG_REQ); addRecSignal(GSN_STTOR, &Ndbcntr::execSTTOR); addRecSignal(GSN_TCSEIZECONF, &Ndbcntr::execTCSEIZECONF); addRecSignal(GSN_TCSEIZEREF, &Ndbcntr::execTCSEIZEREF); diff --git a/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp b/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp index f4b0a7774d8..d89adb10fc5 100644 --- a/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp +++ b/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp @@ -49,6 +49,10 @@ #include <NdbOut.hpp> #include <NdbTick.h> +// used during shutdown for reporting current startphase +// accessed from Emulator.cpp, NdbShutdown() +Uint32 g_currentStartPhase; + /** * ALL_BLOCKS Used during start phases and while changing node state * @@ -81,6 +85,24 @@ static BlockInfo ALL_BLOCKS[] = { static const Uint32 ALL_BLOCKS_SZ = sizeof(ALL_BLOCKS)/sizeof(BlockInfo); +static BlockReference readConfigOrder[ALL_BLOCKS_SZ] = { + DBTUP_REF, + DBACC_REF, + DBTC_REF, + DBLQH_REF, + DBTUX_REF, + DBDICT_REF, + DBDIH_REF, + NDBFS_REF, + NDBCNTR_REF, + QMGR_REF, + CMVMI_REF, + TRIX_REF, + BACKUP_REF, + DBUTIL_REF, + SUMA_REF +}; + /*******************************/ /* CONTINUEB */ /*******************************/ @@ -117,7 +139,7 @@ void Ndbcntr::execCONTINUEB(Signal* signal) else tmp.appfmt(" %d", to_3); - progError(__LINE__, ERR_SYSTEM_ERROR, tmp.c_str()); + progError(__LINE__, NDBD_EXIT_RESTART_TIMEOUT, tmp.c_str()); } signal->theData[0] = ZSTARTUP; @@ -130,7 +152,7 @@ void Ndbcntr::execCONTINUEB(Signal* signal) break; default: jam(); - systemErrorLab(signal); + systemErrorLab(signal, __LINE__); return; break; }//switch @@ -158,13 +180,6 @@ void Ndbcntr::execSYSTEM_ERROR(Signal* signal) jamEntry(); switch (sysErr->errorCode){ - case SystemError::StartInProgressError: - BaseString::snprintf(buf, sizeof(buf), - "Node %d killed this node because " - "master start in progress error", - killingNode); - break; - case SystemError::GCPStopDetected: BaseString::snprintf(buf, sizeof(buf), "Node %d killed this node because " @@ -172,20 +187,6 @@ void Ndbcntr::execSYSTEM_ERROR(Signal* signal) killingNode); break; - case SystemError::ScanfragTimeout: - BaseString::snprintf(buf, sizeof(buf), - "Node %d killed this node because " - "a fragment scan timed out and could not be stopped", - killingNode); - break; - - case SystemError::ScanfragStateError: - BaseString::snprintf(buf, sizeof(buf), - "Node %d killed this node because " - "the state of a fragment scan was out of sync.", - killingNode); - break; - case SystemError::CopyFragRefError: BaseString::snprintf(buf, sizeof(buf), "Node %d killed this node because " @@ -201,12 +202,31 @@ void Ndbcntr::execSYSTEM_ERROR(Signal* signal) break; } - progError(__LINE__, - ERR_SYSTEM_ERROR, - buf); + progError(__LINE__, NDBD_EXIT_SYSTEM_ERROR, buf); return; }//Ndbcntr::execSYSTEM_ERROR() +void +Ndbcntr::execREAD_CONFIG_REQ(Signal* signal) +{ + jamEntry(); + + const ReadConfigReq * req = (ReadConfigReq*)signal->getDataPtr(); + + Uint32 ref = req->senderRef; + Uint32 senderData = req->senderData; + + const ndb_mgm_configuration_iterator * p = + theConfiguration.getOwnConfigIterator(); + ndbrequire(p != 0); + + ReadConfigConf * conf = (ReadConfigConf*)signal->getDataPtrSend(); + conf->senderRef = reference(); + conf->senderData = senderData; + sendSignal(ref, GSN_READ_CONFIG_CONF, signal, + ReadConfigConf::SignalLength, JBB); +} + void Ndbcntr::execSTTOR(Signal* signal) { jamEntry(); @@ -326,7 +346,7 @@ void Ndbcntr::execNDB_STTORRY(Signal* signal) break; default: jam(); - systemErrorLab(signal); + systemErrorLab(signal, __LINE__); return; break; }//switch @@ -366,7 +386,7 @@ void Ndbcntr::startPhase1Lab(Signal* signal) void Ndbcntr::execREAD_NODESREF(Signal* signal) { jamEntry(); - systemErrorLab(signal); + systemErrorLab(signal, __LINE__); return; }//Ndbcntr::execREAD_NODESREF() @@ -377,7 +397,7 @@ void Ndbcntr::execREAD_NODESREF(Signal* signal) void Ndbcntr::execNDB_STARTREF(Signal* signal) { jamEntry(); - systemErrorLab(signal); + systemErrorLab(signal, __LINE__); return; }//Ndbcntr::execNDB_STARTREF() @@ -1358,7 +1378,7 @@ void Ndbcntr::execCNTR_WAITREP(Signal* signal) break; default: jam(); - systemErrorLab(signal); + systemErrorLab(signal, __LINE__); break; }//switch }//Ndbcntr::execCNTR_WAITREP() @@ -1414,22 +1434,19 @@ void Ndbcntr::execNODE_FAILREP(Signal* signal) const bool tStartConf = (phase > 2) || (phase == 2 && cndbBlocksCount > 0); if(tMasterFailed){ - progError(__LINE__, - ERR_SR_OTHERNODEFAILED, + progError(__LINE__, NDBD_EXIT_SR_OTHERNODEFAILED, "Unhandled node failure during restart"); } if(tStartConf && tStarting){ // One of other starting nodes has crashed... - progError(__LINE__, - ERR_SR_OTHERNODEFAILED, + progError(__LINE__, NDBD_EXIT_SR_OTHERNODEFAILED, "Unhandled node failure of starting node during restart"); } if(tStartConf && tStarted){ // One of other started nodes has crashed... - progError(__LINE__, - ERR_SR_OTHERNODEFAILED, + progError(__LINE__, NDBD_EXIT_SR_OTHERNODEFAILED, "Unhandled node failure of started node during restart"); } @@ -1538,9 +1555,9 @@ void Ndbcntr::execREAD_NODESREQ(Signal* signal) /*----------------------------------------------------------------------*/ // SENDS APPL_ERROR TO QMGR AND THEN SET A POINTER OUT OF BOUNDS /*----------------------------------------------------------------------*/ -void Ndbcntr::systemErrorLab(Signal* signal) +void Ndbcntr::systemErrorLab(Signal* signal, int line) { - progError(0, 0); /* BUG INSERTION */ + progError(line, NDBD_EXIT_NDBREQUIRE); /* BUG INSERTION */ return; }//Ndbcntr::systemErrorLab() @@ -1612,7 +1629,7 @@ void Ndbcntr::createSystableLab(Signal* signal, unsigned index) void Ndbcntr::execCREATE_TABLE_REF(Signal* signal) { jamEntry(); - progError(0,0); + progError(__LINE__,NDBD_EXIT_NDBREQUIRE, "CREATE_TABLE_REF"); return; }//Ndbcntr::execDICTTABREF() @@ -1813,28 +1830,28 @@ void Ndbcntr::execGETGCICONF(Signal* signal) void Ndbcntr::execTCKEYREF(Signal* signal) { jamEntry(); - systemErrorLab(signal); + systemErrorLab(signal, __LINE__); return; }//Ndbcntr::execTCKEYREF() void Ndbcntr::execTCROLLBACKREP(Signal* signal) { jamEntry(); - systemErrorLab(signal); + systemErrorLab(signal, __LINE__); return; }//Ndbcntr::execTCROLLBACKREP() void Ndbcntr::execTCRELEASEREF(Signal* signal) { jamEntry(); - systemErrorLab(signal); + systemErrorLab(signal, __LINE__); return; }//Ndbcntr::execTCRELEASEREF() void Ndbcntr::execTCSEIZEREF(Signal* signal) { jamEntry(); - systemErrorLab(signal); + systemErrorLab(signal, __LINE__); return; }//Ndbcntr::execTCSEIZEREF() @@ -2467,7 +2484,7 @@ void Ndbcntr::Missra::sendNextREAD_CONFIG_REQ(Signal* signal){ req->senderRef = cntr.reference(); req->noOfParameters = 0; - const BlockReference ref = ALL_BLOCKS[currentBlockIndex].Ref; + const BlockReference ref = readConfigOrder[currentBlockIndex]; #if 0 ndbout_c("sending READ_CONFIG_REQ to %s(ref=%x index=%d)", @@ -2498,7 +2515,8 @@ void Ndbcntr::Missra::execREAD_CONFIG_CONF(Signal* signal){ const ReadConfigConf * conf = (ReadConfigConf*)signal->getDataPtr(); const Uint32 ref = conf->senderRef; - ndbrequire(refToBlock(ALL_BLOCKS[currentBlockIndex].Ref) == refToBlock(ref)); + ndbrequire(refToBlock(readConfigOrder[currentBlockIndex]) + == refToBlock(ref)); currentBlockIndex++; sendNextREAD_CONFIG_REQ(signal); @@ -2526,11 +2544,12 @@ void Ndbcntr::Missra::execSTTORRY(Signal* signal){ void Ndbcntr::Missra::sendNextSTTOR(Signal* signal){ - for(; currentStartPhase < 255 ; currentStartPhase++){ + for(; currentStartPhase < 255 ; + currentStartPhase++, g_currentStartPhase = currentStartPhase){ jam(); const Uint32 start = currentBlockIndex; - + if (currentStartPhase == ZSTART_PHASE_6) { // Ndbd has passed the critical startphases. @@ -2681,7 +2700,8 @@ UpgradeStartup::execCM_APPCHG(SimulatedBlock & block, Signal* signal){ return; } } - block.progError(0,0); + block.progError(__LINE__,NDBD_EXIT_NDBREQUIRE, + "UpgradeStartup::execCM_APPCHG"); } void @@ -2694,7 +2714,9 @@ UpgradeStartup::sendCntrMasterReq(Ndbcntr& cntr, Signal* signal, Uint32 n){ } if(node == NdbNodeBitmask::NotFound){ - cntr.progError(0,0); + cntr.progError(__LINE__,NDBD_EXIT_NDBREQUIRE, + "UpgradeStartup::sendCntrMasterReq " + "NdbNodeBitmask::NotFound"); } CntrMasterReq * const cntrMasterReq = (CntrMasterReq*)&signal->theData[0]; @@ -2736,5 +2758,6 @@ UpgradeStartup::execCNTR_MASTER_REPLY(SimulatedBlock & block, Signal* signal){ } } } - block.progError(0,0); + block.progError(__LINE__,NDBD_EXIT_NDBREQUIRE, + "UpgradeStartup::execCNTR_MASTER_REPLY"); } |