summaryrefslogtreecommitdiff
path: root/ndb/src/mgmsrv
diff options
context:
space:
mode:
authorunknown <tomas@poseidon.ndb.mysql.com>2006-06-12 13:08:04 +0200
committerunknown <tomas@poseidon.ndb.mysql.com>2006-06-12 13:08:04 +0200
commitce450e501a9105b2e8397d926852d75a44c3ba34 (patch)
tree8baf0b2e8eebaadba359a370a971ca65090f4976 /ndb/src/mgmsrv
parent4a8c50850fa3eaf1991d0e0fc98bb912d204160e (diff)
parent40d687eb43cbc12b67ce65bd3bf8566baee897ac (diff)
downloadmariadb-git-ce450e501a9105b2e8397d926852d75a44c3ba34.tar.gz
Merge poseidon.ndb.mysql.com:/home/tomas/mysql-4.1
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.0 ndb/src/mgmsrv/MgmtSrvr.cpp: Auto merged ndb/src/mgmsrv/Services.cpp: Auto merged
Diffstat (limited to 'ndb/src/mgmsrv')
-rw-r--r--ndb/src/mgmsrv/MgmtSrvr.cpp59
-rw-r--r--ndb/src/mgmsrv/Services.cpp13
2 files changed, 40 insertions, 32 deletions
diff --git a/ndb/src/mgmsrv/MgmtSrvr.cpp b/ndb/src/mgmsrv/MgmtSrvr.cpp
index bb4eb575050..f94042b2abd 100644
--- a/ndb/src/mgmsrv/MgmtSrvr.cpp
+++ b/ndb/src/mgmsrv/MgmtSrvr.cpp
@@ -122,41 +122,50 @@ MgmtSrvr::logLevelThreadRun()
/**
* Handle started nodes
*/
- EventSubscribeReq req;
- req = m_event_listner[0].m_logLevel;
- req.blockRef = _ownReference;
-
- SetLogLevelOrd ord;
-
m_started_nodes.lock();
- while(m_started_nodes.size() > 0){
- Uint32 node = m_started_nodes[0];
- m_started_nodes.erase(0, false);
- m_started_nodes.unlock();
+ if (m_started_nodes.size() > 0)
+ {
+ // calculate max log level
+ EventSubscribeReq req;
+ {
+ LogLevel tmp;
+ m_event_listner.lock();
+ for(int i = m_event_listner.m_clients.size() - 1; i >= 0; i--)
+ tmp.set_max(m_event_listner[i].m_logLevel);
+ m_event_listner.unlock();
+ req = tmp;
+ }
+ req.blockRef = _ownReference;
+ while (m_started_nodes.size() > 0)
+ {
+ Uint32 node = m_started_nodes[0];
+ m_started_nodes.erase(0, false);
+ m_started_nodes.unlock();
- setEventReportingLevelImpl(node, req);
-
- ord = m_nodeLogLevel[node];
- setNodeLogLevelImpl(node, ord);
-
- m_started_nodes.lock();
- }
+ setEventReportingLevelImpl(node, req);
+
+ SetLogLevelOrd ord;
+ ord = m_nodeLogLevel[node];
+ setNodeLogLevelImpl(node, ord);
+
+ m_started_nodes.lock();
+ }
+ }
m_started_nodes.unlock();
m_log_level_requests.lock();
- while(m_log_level_requests.size() > 0){
- req = m_log_level_requests[0];
+ while (m_log_level_requests.size() > 0)
+ {
+ EventSubscribeReq req = m_log_level_requests[0];
m_log_level_requests.erase(0, false);
m_log_level_requests.unlock();
-
- LogLevel tmp;
- tmp = req;
-
+
if(req.blockRef == 0){
req.blockRef = _ownReference;
setEventReportingLevelImpl(0, req);
} else {
- ord = req;
+ SetLogLevelOrd ord;
+ ord = req;
setNodeLogLevelImpl(req.blockRef, ord);
}
m_log_level_requests.lock();
@@ -1521,7 +1530,7 @@ MgmtSrvr::setEventReportingLevelImpl(int nodeId,
{
if (nodeTypes[nodeId] != NODE_TYPE_DB)
continue;
- if (okToSendTo(nodeId, false))
+ if (okToSendTo(nodeId, true))
continue;
if (ss.sendSignal(nodeId, &ssig) == SEND_OK)
{
diff --git a/ndb/src/mgmsrv/Services.cpp b/ndb/src/mgmsrv/Services.cpp
index a4f3f6c7740..5951c2e6d6c 100644
--- a/ndb/src/mgmsrv/Services.cpp
+++ b/ndb/src/mgmsrv/Services.cpp
@@ -1321,13 +1321,12 @@ Ndb_mgmd_event_service::update_max_log_level(const LogLevel &log_level)
void
Ndb_mgmd_event_service::update_log_level(const LogLevel &tmp)
{
- if(!(tmp == m_logLevel)){
- m_logLevel = tmp;
- EventSubscribeReq req;
- req = tmp;
- req.blockRef = 0;
- m_mgmsrv->m_log_level_requests.push_back(req);
- }
+ m_logLevel = tmp;
+ EventSubscribeReq req;
+ req = tmp;
+ // send update to all nodes
+ req.blockRef = 0;
+ m_mgmsrv->m_log_level_requests.push_back(req);
}
void