Commit 246e6cca authored by unknown's avatar unknown

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

into rurik.mysql.com:/home/igor/mysql-4.1
parents 0bd9f889 c80c4f2a
...@@ -360,6 +360,10 @@ sub main () { ...@@ -360,6 +360,10 @@ sub main () {
if ( $opt_start_and_exit ) if ( $opt_start_and_exit )
{ {
if ( ndbcluster_start() )
{
mtr_error("Can't start ndbcluster");
}
if ( mysqld_start('master',0,[],[]) ) if ( mysqld_start('master',0,[],[]) )
{ {
mtr_report("Servers started, exiting"); mtr_report("Servers started, exiting");
...@@ -1055,7 +1059,7 @@ sub ndbcluster_start () { ...@@ -1055,7 +1059,7 @@ sub ndbcluster_start () {
"--data-dir=$glob_mysql_test_dir/var"], "--data-dir=$glob_mysql_test_dir/var"],
"", "/dev/null", "", "") ) "", "/dev/null", "", "") )
{ {
mtr_error("Error ndbcluster_install"); mtr_error("Error ndbcluster_start");
return 1; return 1;
} }
......
...@@ -376,6 +376,7 @@ extern "C" { ...@@ -376,6 +376,7 @@ extern "C" {
int ndb_mgm_set_connectstring(NdbMgmHandle handle, int ndb_mgm_set_connectstring(NdbMgmHandle handle,
const char *connect_string); 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_configuration_nodeid(NdbMgmHandle handle);
int ndb_mgm_get_connected_port(NdbMgmHandle handle); int ndb_mgm_get_connected_port(NdbMgmHandle handle);
const char *ndb_mgm_get_connected_host(NdbMgmHandle handle); const char *ndb_mgm_get_connected_host(NdbMgmHandle handle);
......
...@@ -55,6 +55,8 @@ public: ...@@ -55,6 +55,8 @@ public:
*/ */
Uint32 allocNodeId(int no_retries, int retry_delay_in_seconds); Uint32 allocNodeId(int no_retries, int retry_delay_in_seconds);
int setNodeId(Uint32 nodeid);
/** /**
* Get config using socket * Get config using socket
*/ */
......
...@@ -316,6 +316,12 @@ ConfigRetriever::verifyConfig(const struct ndb_mgm_configuration * conf, Uint32 ...@@ -316,6 +316,12 @@ ConfigRetriever::verifyConfig(const struct ndb_mgm_configuration * conf, Uint32
return true; return true;
} }
int
ConfigRetriever::setNodeId(Uint32 nodeid)
{
return ndb_mgm_set_configuration_nodeid(m_handle, nodeid);
}
Uint32 Uint32
ConfigRetriever::allocNodeId(int no_retries, int retry_delay_in_seconds) ConfigRetriever::allocNodeId(int no_retries, int retry_delay_in_seconds)
{ {
......
...@@ -141,6 +141,8 @@ Configuration::init(int argc, char** argv) ...@@ -141,6 +141,8 @@ Configuration::init(int argc, char** argv)
else else
_programName = strdup(""); _programName = strdup("");
globalData.ownId= 0;
return true; return true;
} }
...@@ -215,6 +217,13 @@ Configuration::fetch_configuration(){ ...@@ -215,6 +217,13 @@ Configuration::fetch_configuration(){
ConfigRetriever &cr= *m_config_retriever; 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*/); globalData.ownId = cr.allocNodeId(2 /*retry*/,3 /*delay*/);
if(globalData.ownId == 0){ if(globalData.ownId == 0){
......
...@@ -1720,6 +1720,15 @@ ndb_mgm_destroy_configuration(struct ndb_mgm_configuration *cfg) ...@@ -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" extern "C"
int int
ndb_mgm_get_configuration_nodeid(NdbMgmHandle handle) ndb_mgm_get_configuration_nodeid(NdbMgmHandle handle)
......
...@@ -1069,16 +1069,19 @@ print_nodes(ndb_mgm_cluster_state *state, ndb_mgm_configuration_iterator *it, ...@@ -1069,16 +1069,19 @@ print_nodes(ndb_mgm_cluster_state *state, ndb_mgm_configuration_iterator *it,
} }
ndbout << ")" << endl; ndbout << ")" << endl;
} else { } else {
if(ndb_mgm_find(it, CFG_NODE_ID, node_id) != 0){ 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); ndbout_c("Unable to find node with id: %d", node_id);
return;
} }
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;
} }
} }
} }
......
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