mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into poseidon.(none):/home/tomas/mysql-4.1-clean
This commit is contained in:
@ -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,6 +649,7 @@ CommandInterpreter::executeShow(char* parameters)
|
||||
}
|
||||
|
||||
int
|
||||
master_id= 0,
|
||||
ndb_nodes= 0,
|
||||
api_nodes= 0,
|
||||
mgm_nodes= 0;
|
||||
@ -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,6 +698,27 @@ CommandInterpreter::executeShow(char* parameters)
|
||||
}
|
||||
ndbout << endl;
|
||||
|
||||
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_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) << "."
|
||||
<< getMinor(state->node_states[i].version) << "."
|
||||
<< getBuild(state->node_states[i].version) << ")" << endl;
|
||||
|
||||
} else
|
||||
{
|
||||
ndbout << " (no version information available) " << endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
ndbout << endl;
|
||||
|
||||
ndbout << api_nodes
|
||||
<< " API Node(s)"
|
||||
<< endl;
|
||||
@ -713,26 +740,6 @@ CommandInterpreter::executeShow(char* parameters)
|
||||
}
|
||||
ndbout << endl;
|
||||
|
||||
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_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) << "."
|
||||
<< getMinor(state->node_states[i].version) << "."
|
||||
<< getBuild(state->node_states[i].version) << ")" << endl;
|
||||
|
||||
} else
|
||||
{
|
||||
ndbout << " (no version information available) " << 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,11 +1014,28 @@ 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 (nodes[i] != m_mgmsrv.getOwnNodeId()) {
|
||||
if((result = m_mgmsrv.stopNode(nodes[i], abort != 0)) == 0)
|
||||
stopped++;
|
||||
} else
|
||||
stopped++;
|
||||
|
||||
m_output->println("stop reply");
|
||||
if(result != 0)
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user