Commit ab0e8f2e authored by unknown's avatar unknown

BUG#11516 ndb_mgmd debug core on cluster shutdown with failed data nodes

Fix closing of sessions on mgm server shutdown.


ndb/include/mgmcommon/ConfigRetriever.hpp:
  Add disconnect();
ndb/src/common/mgmcommon/ConfigRetriever.cpp:
  Add disconnect() call so we can disconnect from the mgm server before it shuts down
  (if we are a mgm server).
ndb/src/mgmsrv/main.cpp:
  Close our ConfigRetriever connection first.
  
  Stop sessions, and wait for them to stop. (previously we didn't wait, this was
  causing core dumps on shutdown with failed nodes).
parent 98a3bae3
...@@ -32,6 +32,7 @@ public: ...@@ -32,6 +32,7 @@ public:
~ConfigRetriever(); ~ConfigRetriever();
int do_connect(int no_retries, int retry_delay_in_seconds, int verbose); int do_connect(int no_retries, int retry_delay_in_seconds, int verbose);
int disconnect();
/** /**
* Get configuration for current node. * Get configuration for current node.
......
...@@ -107,6 +107,12 @@ ConfigRetriever::do_connect(int no_retries, ...@@ -107,6 +107,12 @@ ConfigRetriever::do_connect(int no_retries,
0 : -1; 0 : -1;
} }
int
ConfigRetriever::disconnect()
{
return ndb_mgm_disconnect(m_handle);
}
//**************************************************************************** //****************************************************************************
//**************************************************************************** //****************************************************************************
//**************************************************************************** //****************************************************************************
......
...@@ -353,7 +353,8 @@ int main(int argc, char** argv) ...@@ -353,7 +353,8 @@ int main(int argc, char** argv)
g_eventLogger.info("Shutting down server..."); g_eventLogger.info("Shutting down server...");
glob.socketServer->stopServer(); glob.socketServer->stopServer();
glob.socketServer->stopSessions(); glob.mgmObject->get_config_retriever()->disconnect();
glob.socketServer->stopSessions(true);
g_eventLogger.info("Shutdown complete"); g_eventLogger.info("Shutdown complete");
return 0; return 0;
error_end: error_end:
......
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