Commit b22a499d authored by hf@deer.(none)'s avatar hf@deer.(none)

Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-4.1

into deer.(none):/home/hf/work/mysql-4.1.emb
parents cce03195 c5bf129e
......@@ -194,6 +194,7 @@ stop_default_ndbcluster() {
exec_mgmtclient="$exec_mgmtclient --try-reconnect=1"
echo "all stop" | $exec_mgmtclient 2>&1 | cat > /dev/null
echo "3 stop" | $exec_mgmtclient 2>&1 | cat > /dev/null
if [ -f "$fs_ndb/$pidfile" ] ; then
kill -9 `cat "$fs_ndb/$pidfile"` 2> /dev/null
......
......@@ -649,9 +649,10 @@ CommandInterpreter::executeShow(char* parameters)
}
int
ndb_nodes = 0,
api_nodes = 0,
mgm_nodes = 0;
master_id= 0,
ndb_nodes= 0,
api_nodes= 0,
mgm_nodes= 0;
for(i=0; i < state->no_of_nodes; i++) {
switch(state->node_states[i].node_type) {
......@@ -659,6 +660,8 @@ CommandInterpreter::executeShow(char* parameters)
api_nodes++;
break;
case NDB_MGM_NODE_TYPE_NDB:
if (state->node_states[i].dynamic_id > master_id)
master_id= state->node_states[i].dynamic_id;
ndb_nodes++;
break;
case NDB_MGM_NODE_TYPE_MGM:
......@@ -681,8 +684,11 @@ CommandInterpreter::executeShow(char* parameters)
ndbout << " (Version: "
<< getMajor(state->node_states[i].version) << "."
<< getMinor(state->node_states[i].version) << "."
<< getBuild(state->node_states[i].version) << ")" << endl;
<< getBuild(state->node_states[i].version) << ","
<< " Nodegroup: " << state->node_states[i].node_group;
if (state->node_states[i].dynamic_id == master_id)
ndbout << ", Master";
ndbout << ")" << endl;
} else
{
ndbout << " (not connected) " << endl;
......@@ -692,13 +698,13 @@ CommandInterpreter::executeShow(char* parameters)
}
ndbout << endl;
ndbout << api_nodes
<< " API Node(s)"
ndbout << mgm_nodes
<< " MGM Node(s)"
<< endl;
for(i=0; i < state->no_of_nodes; i++) {
if(state->node_states[i].node_type == NDB_MGM_NODE_TYPE_API) {
ndbout << "API node:\t" << state->node_states[i].node_id;
if(state->node_states[i].node_type == NDB_MGM_NODE_TYPE_MGM) {
ndbout << "MGM node:\t" << state->node_states[i].node_id;
if(state->node_states[i].version != 0) {
ndbout << " (Version: "
<< getMajor(state->node_states[i].version) << "."
......@@ -707,19 +713,19 @@ CommandInterpreter::executeShow(char* parameters)
} else
{
ndbout << " (not connected) " << endl;
ndbout << " (no version information available) " << endl;
}
}
}
ndbout << endl;
ndbout << mgm_nodes
<< " MGM Node(s)"
ndbout << api_nodes
<< " API Node(s)"
<< endl;
for(i=0; i < state->no_of_nodes; i++) {
if(state->node_states[i].node_type == NDB_MGM_NODE_TYPE_MGM) {
ndbout << "MGM node:\t" << state->node_states[i].node_id;
if(state->node_states[i].node_type == NDB_MGM_NODE_TYPE_API) {
ndbout << "API node:\t" << state->node_states[i].node_id;
if(state->node_states[i].version != 0) {
ndbout << " (Version: "
<< getMajor(state->node_states[i].version) << "."
......@@ -728,11 +734,12 @@ CommandInterpreter::executeShow(char* parameters)
} else
{
ndbout << " (no version information available) " << endl;
ndbout << " (not connected) " << endl;
}
}
}
ndbout << endl;
// ndbout << helpTextShow;
return;
} else if (strcmp(parameters, "PROPERTIES") == 0 ||
......
......@@ -31,6 +31,8 @@
#include "Services.hpp"
extern bool g_StopServer;
static const unsigned int MAX_READ_TIMEOUT = 1000 ;
static const unsigned int MAX_WRITE_TIMEOUT = 100 ;
......@@ -1012,10 +1014,27 @@ MgmApiSession::stop(Parser<MgmApiSession>::Context &,
nodes.push_back(atoi(p));
}
int stop_self= 0;
for(size_t i=0; i < nodes.size(); i++) {
if (nodes[i] == m_mgmsrv.getOwnNodeId()) {
stop_self= 1;
if (i != nodes.size()-1) {
m_output->println("stop reply");
m_output->println("result: server must be stopped last");
m_output->println("");
return;
}
}
}
int stopped = 0, result = 0;
for(size_t i=0; i < nodes.size(); i++)
if((result = m_mgmsrv.stopNode(nodes[i], abort != 0)) == 0)
if (nodes[i] != m_mgmsrv.getOwnNodeId()) {
if((result = m_mgmsrv.stopNode(nodes[i], abort != 0)) == 0)
stopped++;
} else
stopped++;
m_output->println("stop reply");
......@@ -1025,6 +1044,9 @@ MgmApiSession::stop(Parser<MgmApiSession>::Context &,
m_output->println("result: Ok");
m_output->println("stopped: %d", stopped);
m_output->println("");
if (stop_self)
g_StopServer= true;
}
......
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