summaryrefslogtreecommitdiff
path: root/ndb/src/common
diff options
context:
space:
mode:
authorunknown <jonas@perch.ndb.mysql.com>2006-04-06 11:43:31 +0200
committerunknown <jonas@perch.ndb.mysql.com>2006-04-06 11:43:31 +0200
commitbe0d6c94de4c9c6542d3381185a73a96c4bedcae (patch)
tree40f7c9e1a1b9a72e75e10ddcf6fcffe901e4968f /ndb/src/common
parente40bdb5b711c1bb4d8ae003153102a6e8dc1d735 (diff)
downloadmariadb-git-be0d6c94de4c9c6542d3381185a73a96c4bedcae.tar.gz
ndb - wl1760/bug#18216
add two new start options that will decrease likelyhood of bug#18612 push cntr-sp2 logic down into qmgr-sp1 to decrease likelyhood of bug#18612 ndb/include/kernel/signaldata/CmRegSignalData.hpp: Expand CmRegReq with lots of stuff ndb/include/mgmapi/ndb_logevent.h: Add Start report during sp1 ndb/src/common/debugger/EventLogger.cpp: Add Start report during sp1 ndb/src/kernel/blocks/dbdih/DbdihInit.cpp: Init cntrref ndb/src/kernel/blocks/dbdih/DbdihMain.cpp: Fix small bugs related to partial initial start ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp: Remove timeouts as they are handled in QMGR nowadays ndb/src/kernel/blocks/qmgr/Qmgr.hpp: Push cntr sp2 logic down to QMGR to prevent the forming of multiple QMGR cluster that will lead to start problems (crashes...) ndb/src/kernel/blocks/qmgr/QmgrInit.cpp: Push cntr sp2 logic down to QMGR to prevent the forming of multiple QMGR cluster that will lead to start problems (crashes...) ndb/src/kernel/blocks/qmgr/QmgrMain.cpp: Push cntr sp2 logic down to QMGR to prevent the forming of multiple QMGR cluster that will lead to start problems (crashes...) ndb/src/kernel/vm/Configuration.cpp: Add new flags --initial-start --nowait-nodes
Diffstat (limited to 'ndb/src/common')
-rw-r--r--ndb/src/common/debugger/EventLogger.cpp85
1 files changed, 85 insertions, 0 deletions
diff --git a/ndb/src/common/debugger/EventLogger.cpp b/ndb/src/common/debugger/EventLogger.cpp
index f785cda5215..e1a477b8ea4 100644
--- a/ndb/src/common/debugger/EventLogger.cpp
+++ b/ndb/src/common/debugger/EventLogger.cpp
@@ -707,6 +707,90 @@ void getTextSingleUser(QQQQ) {
}
}
+void getTextStartReport(QQQQ) {
+ Uint32 time = theData[2];
+ Uint32 sz = theData[3];
+ char mask1[100];
+ char mask2[100];
+ char mask3[100];
+ char mask4[100];
+ BitmaskImpl::getText(sz, theData + 4 + (0 * sz), mask1);
+ BitmaskImpl::getText(sz, theData + 4 + (1 * sz), mask2);
+ BitmaskImpl::getText(sz, theData + 4 + (2 * sz), mask3);
+ BitmaskImpl::getText(sz, theData + 4 + (3 * sz), mask4);
+ switch(theData[1]){
+ case 1: // Wait initial
+ BaseString::snprintf
+ (m_text, m_text_len,
+ "Initial start, waiting for %s to connect, "
+ " nodes [ all: %s connected: %s no-wait: %s ]",
+ mask4, mask1, mask2, mask3);
+ break;
+ case 2: // Wait partial
+ BaseString::snprintf
+ (m_text, m_text_len,
+ "Waiting until nodes: %s connects, "
+ "nodes [ all: %s connected: %s no-wait: %s ]",
+ mask4, mask1, mask2, mask3);
+ break;
+ case 3: // Wait partial timeout
+ BaseString::snprintf
+ (m_text, m_text_len,
+ "Waiting %u sec for nodes %s to connect, "
+ "nodes [ all: %s connected: %s no-wait: %s ]",
+
+ time, mask4, mask1, mask2, mask3);
+ break;
+ case 4: // Wait partioned
+ BaseString::snprintf
+ (m_text, m_text_len,
+ "Waiting for non partitioned start, "
+ "nodes [ all: %s connected: %s missing: %s no-wait: %s ]",
+
+ mask1, mask2, mask4, mask3);
+ break;
+ case 5:
+ BaseString::snprintf
+ (m_text, m_text_len,
+ "Waiting %u sec for non partitioned start, "
+ "nodes [ all: %s connected: %s missing: %s no-wait: %s ]",
+
+ time, mask1, mask2, mask4, mask3);
+ break;
+ case 0x8000: // Do initial
+ BaseString::snprintf
+ (m_text, m_text_len,
+ "Initial start with nodes %s [ missing: %s no-wait: %s ]",
+ mask2, mask4, mask3);
+ break;
+ case 0x8001: // Do start
+ BaseString::snprintf
+ (m_text, m_text_len,
+ "Start with all nodes %s",
+ mask2);
+ break;
+ case 0x8002: // Do partial
+ BaseString::snprintf
+ (m_text, m_text_len,
+ "Start with nodes %s [ missing: %s no-wait: %s ]",
+ mask2, mask4, mask3);
+ break;
+ case 0x8003: // Do partioned
+ BaseString::snprintf
+ (m_text, m_text_len,
+ "Start potentially partitioned with nodes %s "
+ " [ missing: %s no-wait: %s ]",
+ mask2, mask4, mask3);
+ break;
+ default:
+ BaseString::snprintf
+ (m_text, m_text_len,
+ "Unknown startreport: 0x%x [ %s %s %s %s ]",
+ theData[1],
+ mask1, mask2, mask3, mask4);
+ }
+}
+
#if 0
BaseString::snprintf(m_text,
m_text_len,
@@ -755,6 +839,7 @@ const EventLoggerBase::EventRepLogLevelMatrix EventLoggerBase::matrix[] = {
ROW(StartREDOLog, LogLevel::llStartUp, 10, Logger::LL_INFO ),
ROW(StartLog, LogLevel::llStartUp, 10, Logger::LL_INFO ),
ROW(UNDORecordsExecuted, LogLevel::llStartUp, 15, Logger::LL_INFO ),
+ ROW(StartReport, LogLevel::llStartUp, 4, Logger::LL_INFO ),
// NODERESTART
ROW(NR_CopyDict, LogLevel::llNodeRestart, 8, Logger::LL_INFO ),