mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 02:51:44 +01:00
Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1
into rurik.mysql.com:/home/igor/mysql-4.1
This commit is contained in:
commit
f66111aea0
7 changed files with 44 additions and 10 deletions
|
@ -360,6 +360,10 @@ sub main () {
|
|||
|
||||
if ( $opt_start_and_exit )
|
||||
{
|
||||
if ( ndbcluster_start() )
|
||||
{
|
||||
mtr_error("Can't start ndbcluster");
|
||||
}
|
||||
if ( mysqld_start('master',0,[],[]) )
|
||||
{
|
||||
mtr_report("Servers started, exiting");
|
||||
|
@ -1055,7 +1059,7 @@ sub ndbcluster_start () {
|
|||
"--data-dir=$glob_mysql_test_dir/var"],
|
||||
"", "/dev/null", "", "") )
|
||||
{
|
||||
mtr_error("Error ndbcluster_install");
|
||||
mtr_error("Error ndbcluster_start");
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -376,6 +376,7 @@ extern "C" {
|
|||
int ndb_mgm_set_connectstring(NdbMgmHandle handle,
|
||||
const char *connect_string);
|
||||
|
||||
int ndb_mgm_set_configuration_nodeid(NdbMgmHandle handle, int nodeid);
|
||||
int ndb_mgm_get_configuration_nodeid(NdbMgmHandle handle);
|
||||
int ndb_mgm_get_connected_port(NdbMgmHandle handle);
|
||||
const char *ndb_mgm_get_connected_host(NdbMgmHandle handle);
|
||||
|
|
|
@ -55,6 +55,8 @@ public:
|
|||
*/
|
||||
Uint32 allocNodeId(int no_retries, int retry_delay_in_seconds);
|
||||
|
||||
int setNodeId(Uint32 nodeid);
|
||||
|
||||
/**
|
||||
* Get config using socket
|
||||
*/
|
||||
|
|
|
@ -316,6 +316,12 @@ ConfigRetriever::verifyConfig(const struct ndb_mgm_configuration * conf, Uint32
|
|||
return true;
|
||||
}
|
||||
|
||||
int
|
||||
ConfigRetriever::setNodeId(Uint32 nodeid)
|
||||
{
|
||||
return ndb_mgm_set_configuration_nodeid(m_handle, nodeid);
|
||||
}
|
||||
|
||||
Uint32
|
||||
ConfigRetriever::allocNodeId(int no_retries, int retry_delay_in_seconds)
|
||||
{
|
||||
|
|
|
@ -141,6 +141,8 @@ Configuration::init(int argc, char** argv)
|
|||
else
|
||||
_programName = strdup("");
|
||||
|
||||
globalData.ownId= 0;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -215,6 +217,13 @@ Configuration::fetch_configuration(){
|
|||
|
||||
ConfigRetriever &cr= *m_config_retriever;
|
||||
|
||||
/**
|
||||
* if we have a nodeid set (e.g in a restart situation)
|
||||
* reuse it
|
||||
*/
|
||||
if (globalData.ownId)
|
||||
cr.setNodeId(globalData.ownId);
|
||||
|
||||
globalData.ownId = cr.allocNodeId(2 /*retry*/,3 /*delay*/);
|
||||
|
||||
if(globalData.ownId == 0){
|
||||
|
|
|
@ -1720,6 +1720,15 @@ ndb_mgm_destroy_configuration(struct ndb_mgm_configuration *cfg)
|
|||
}
|
||||
}
|
||||
|
||||
extern "C"
|
||||
int
|
||||
ndb_mgm_set_configuration_nodeid(NdbMgmHandle handle, int nodeid)
|
||||
{
|
||||
CHECK_HANDLE(handle, -1);
|
||||
handle->cfg._ownNodeId= nodeid;
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern "C"
|
||||
int
|
||||
ndb_mgm_get_configuration_nodeid(NdbMgmHandle handle)
|
||||
|
|
|
@ -1069,16 +1069,19 @@ print_nodes(ndb_mgm_cluster_state *state, ndb_mgm_configuration_iterator *it,
|
|||
}
|
||||
ndbout << ")" << endl;
|
||||
} else {
|
||||
if(ndb_mgm_find(it, CFG_NODE_ID, node_id) != 0){
|
||||
ndbout_c("Unable to find node with id: %d", node_id);
|
||||
return;
|
||||
ndb_mgm_first(it);
|
||||
if(ndb_mgm_find(it, CFG_NODE_ID, node_id) == 0){
|
||||
const char *config_hostname= 0;
|
||||
ndb_mgm_get_string_parameter(it, CFG_NODE_HOST, &config_hostname);
|
||||
if (config_hostname == 0 || config_hostname[0] == 0)
|
||||
config_hostname= "any host";
|
||||
ndbout_c(" (not connected, accepting connect from %s)",
|
||||
config_hostname);
|
||||
}
|
||||
else
|
||||
{
|
||||
ndbout_c("Unable to find node with id: %d", node_id);
|
||||
}
|
||||
const char *config_hostname= 0;
|
||||
ndb_mgm_get_string_parameter(it, CFG_NODE_HOST, &config_hostname);
|
||||
if (config_hostname == 0 || config_hostname[0] == 0)
|
||||
config_hostname= "any host";
|
||||
ndbout << " (not connected, accepting connect from "
|
||||
<< config_hostname << ")" << endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue