Commit f4e8fb55 authored by unknown's avatar unknown

Ndb mgmsrv Memleak(s)


ndb/src/mgmapi/Makefile.am:
  remove ndb_test_mgmapi from Makefile
  as it's has "incorrect" dependencies
ndb/src/mgmsrv/MgmtSrvr.cpp:
  Stop/wait for m_signalRecvThread aswell
parent 0670b15c
...@@ -9,5 +9,10 @@ DEFS_LOC = -DNO_DEBUG_MESSAGES ...@@ -9,5 +9,10 @@ DEFS_LOC = -DNO_DEBUG_MESSAGES
include $(top_srcdir)/ndb/config/common.mk.am include $(top_srcdir)/ndb/config/common.mk.am
include $(top_srcdir)/ndb/config/type_util.mk.am include $(top_srcdir)/ndb/config/type_util.mk.am
#ndbtest_PROGRAMS = ndb_test_mgmapi
ndb_test_mgmapi_SOURCES = test_mgmapi.cpp
ndb_test_mgmapi_LDFLAGS = @ndb_bin_am_ldflags@ \
$(top_builddir)/ndb/src/libndbclient.la
# Don't update the files from bitkeeper # Don't update the files from bitkeeper
%::SCCS/s.% %::SCCS/s.%
...@@ -172,7 +172,7 @@ MgmtSrvr::signalRecvThreadRun() ...@@ -172,7 +172,7 @@ MgmtSrvr::signalRecvThreadRun()
siglist.push_back(SigMatch(GSN_MGM_UNLOCK_CONFIG_REQ, siglist.push_back(SigMatch(GSN_MGM_UNLOCK_CONFIG_REQ,
&MgmtSrvr::handle_MGM_UNLOCK_CONFIG_REQ)); &MgmtSrvr::handle_MGM_UNLOCK_CONFIG_REQ));
while(1) { while(!_isStopThread) {
SigMatch *handler = NULL; SigMatch *handler = NULL;
NdbApiSignal *signal = NULL; NdbApiSignal *signal = NULL;
if(m_signalRecvQueue.waitFor(siglist, handler, signal)) { if(m_signalRecvQueue.waitFor(siglist, handler, signal)) {
...@@ -415,14 +415,18 @@ MgmtSrvr::getPort() const { ...@@ -415,14 +415,18 @@ MgmtSrvr::getPort() const {
ndbout << "Local node id " << getOwnNodeId() ndbout << "Local node id " << getOwnNodeId()
<< " is not defined as management server" << endl << " is not defined as management server" << endl
<< "Have you set correct NodeId for this node?" << endl; << "Have you set correct NodeId for this node?" << endl;
ndb_mgm_destroy_iterator(iter);
return 0; return 0;
} }
Uint32 port = 0; Uint32 port = 0;
if(ndb_mgm_get_int_parameter(iter, CFG_MGM_PORT, &port) != 0){ if(ndb_mgm_get_int_parameter(iter, CFG_MGM_PORT, &port) != 0){
ndbout << "Could not find PortNumber in the configuration file." << endl; ndbout << "Could not find PortNumber in the configuration file." << endl;
ndb_mgm_destroy_iterator(iter);
return 0; return 0;
} }
ndb_mgm_destroy_iterator(iter);
/***************** /*****************
* Set Stat Port * * Set Stat Port *
...@@ -517,6 +521,7 @@ MgmtSrvr::MgmtSrvr(NodeId nodeId, ...@@ -517,6 +521,7 @@ MgmtSrvr::MgmtSrvr(NodeId nodeId,
_isStopThread = false; _isStopThread = false;
_logLevelThread = NULL; _logLevelThread = NULL;
_logLevelThreadSleep = 500; _logLevelThreadSleep = 500;
m_signalRecvThread = NULL;
_startedNodeId = 0; _startedNodeId = 0;
theFacade = 0; theFacade = 0;
...@@ -696,6 +701,11 @@ MgmtSrvr::~MgmtSrvr() ...@@ -696,6 +701,11 @@ MgmtSrvr::~MgmtSrvr()
NdbThread_WaitFor(_logLevelThread, &res); NdbThread_WaitFor(_logLevelThread, &res);
NdbThread_Destroy(&_logLevelThread); NdbThread_Destroy(&_logLevelThread);
} }
if (m_signalRecvThread != NULL) {
NdbThread_WaitFor(m_signalRecvThread, &res);
NdbThread_Destroy(&m_signalRecvThread);
}
} }
//**************************************************************************** //****************************************************************************
......
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