#At file:///home/tomas/mysql_src/mysql-5.1-telco-6.4/
3138 Tomas Ulin 2008-12-05 [merge]
merge
modified:
mysql-test/mysql-test-run.pl
storage/ndb/src/mgmsrv/ConfigManager.cpp
storage/ndb/src/mgmsrv/ConfigManager.hpp
storage/ndb/src/mgmsrv/MgmtSrvr.cpp
storage/ndb/src/mgmsrv/MgmtSrvr.hpp
storage/ndb/src/mgmsrv/main.cpp
storage/ndb/test/run-test/setup.cpp
=== modified file 'mysql-test/mysql-test-run.pl'
--- a/mysql-test/mysql-test-run.pl 2008-10-30 13:54:40 +0000
+++ b/mysql-test/mysql-test-run.pl 2008-12-05 09:58:51 +0000
@@ -2832,8 +2832,8 @@ sub ndb_mgmd_start ($) {
mtr_add_arg($args, "--core");
mtr_add_arg($args, "--nodaemon");
mtr_add_arg($args, "--config-file=%s", "$cluster->{'data_dir'}/config.ini");
- mtr_add_arg($args, "--datadir=%s", "$cluster->{'data_dir'}");
- mtr_add_arg($args, "--ndb-nodeid=%d", $cluster->{'nodes'} + 1);
+ mtr_add_arg($args, "--configdir=%s", "$cluster->{'data_dir'}");
+# mtr_add_arg($args, "--ndb-nodeid=%d", $cluster->{'nodes'} + 1);
my $path_ndb_mgmd_log= "$cluster->{'data_dir'}/\l$cluster->{'name'}_ndb_mgmd.log";
=== modified file 'storage/ndb/src/mgmsrv/ConfigManager.cpp'
--- a/storage/ndb/src/mgmsrv/ConfigManager.cpp 2008-11-14 09:19:30 +0000
+++ b/storage/ndb/src/mgmsrv/ConfigManager.cpp 2008-12-05 09:58:51 +0000
@@ -42,7 +42,7 @@ require(bool v)
extern "C" const char* opt_connect_str;
ConfigManager::ConfigManager(const MgmtSrvr::MgmtOpts& opts,
- const char* datadir) :
+ const char* configdir) :
MgmtThread("ConfigManager"),
m_opts(opts),
m_facade(NULL),
@@ -59,7 +59,7 @@ ConfigManager::ConfigManager(const MgmtS
m_client_ref(RNIL),
m_prepared_config(NULL),
m_node_id(0),
- m_datadir(datadir)
+ m_configdir(configdir)
{
}
@@ -117,20 +117,20 @@ alone_on_host(Config* conf,
/**
- find_nodeid_from_datadir
+ find_nodeid_from_configdir
- Check if datadir only contains config files
+ Check if configdir only contains config files
with one nodeid -> read the latest and confirm
there should only be one mgm node on this host
*/
NodeId
-ConfigManager::find_nodeid_from_datadir(void)
+ConfigManager::find_nodeid_from_configdir(void)
{
BaseString config_name;
DirIterator iter;
- if (iter.open(m_datadir) != 0)
+ if (iter.open(m_configdir) != 0)
return 0;
const char* name;
@@ -144,7 +144,7 @@ ConfigManager::find_nodeid_from_datadir(
"ndb_%u_config.bin.%u%c",
&nodeid, &version, &extra) == 2)
{
- ndbout_c("match: %s", name);
+ // ndbout_c("match: %s", name);
if (nodeid != found_nodeid)
{
@@ -162,7 +162,7 @@ ConfigManager::find_nodeid_from_datadir(
return 0;
config_name.assfmt("%s%sndb_%u_config.bin.%u",
- m_datadir, DIR_SEPARATOR, found_nodeid, max_version);
+ m_configdir, DIR_SEPARATOR, found_nodeid, max_version);
Config* conf;
if (!(conf = load_saved_config(config_name)))
@@ -261,11 +261,11 @@ ConfigManager::init_nodeid(void)
DBUG_RETURN(true);
}
- nodeid = find_nodeid_from_datadir();
+ nodeid = find_nodeid_from_configdir();
if (nodeid)
{
- // Found nodeid by searching in datadir
- g_eventLogger->debug("Got nodeid: %d from searching in datadir",
+ // Found nodeid by searching in configdir
+ g_eventLogger->debug("Got nodeid: %d from searching in configdir",
nodeid);
m_node_id = nodeid;
DBUG_RETURN(true);
@@ -460,8 +460,8 @@ ConfigManager::prepareConfigChange(const
}
assert(m_node_id);
- m_config_name.assfmt("%s/ndb_%u_config.bin.%u",
- m_datadir, m_node_id, generation);
+ m_config_name.assfmt("%s%sndb_%u_config.bin.%u",
+ m_configdir, DIR_SEPARATOR, m_node_id, generation);
g_eventLogger->debug("Preparing configuration, generation: %d name: %s",
generation, m_config_name.c_str());
@@ -593,43 +593,21 @@ ConfigManager::config_ok(const Config* c
return false;
}
- // Check if --datadir is same as DataDir from config
- assert(m_datadir);
+ // Check DataDir exist
ConfigIter iter(conf, CFG_SECTION_NODE);
require(iter.find(CFG_NODE_ID, m_node_id) == 0);
const char *datadir;
require(iter.get(CFG_NODE_DATADIR, &datadir) == 0);
- if (strcmp(datadir, "") != 0 && // Not set -> empty string
- strcmp(m_datadir, datadir) != 0) // Different
+ if (strcmp(datadir, "") != 0 && // datadir != ""
+ access(datadir, F_OK)) // dir exists
{
- // Not same --datadir and DataDir
- if (strcmp(m_datadir, MYSQLCLUSTERDIR) == 0 ||
- strcmp(datadir, MYSQLCLUSTERDIR) == 0)
- {
- // Using the builtin default --datadir
- g_eventLogger->error("The builtin data directory '%s' does " \
- "not match DataDir=%s specified in " \
- "configuration. Either specify --datadir=%s " \
- "on command line or remove the DataDir=%s " \
- "from configuration in order to use the " \
- "builtin default.",
- m_datadir, datadir, m_datadir, datadir);
- return false;
- }
- else
- {
- // Using --datadir specified on command line
- g_eventLogger->error("The data directory specified on command line " \
- "with --datadir=%s does not match DataDir=%s " \
- "specified in configuration. You need to " \
- "change one of them.",
- m_datadir, datadir);
- return false;
- }
+ g_eventLogger->error("Directory '%s' specified with DataDir " \
+ "in configuration does not exist.", \
+ datadir);
+ return false;
}
- NdbConfig_SetPath(m_datadir);
return true;
}
@@ -1631,7 +1609,7 @@ ConfigManager::saved_config_exists(BaseS
{
DirIterator iter;
- if (iter.open(m_datadir) != 0)
+ if (iter.open(m_configdir) != 0)
return false;
const char* name;
@@ -1658,7 +1636,7 @@ ConfigManager::saved_config_exists(BaseS
return false;
config_name.assfmt("%s%sndb_%u_config.bin.%u",
- m_datadir, DIR_SEPARATOR, m_node_id, max_version);
+ m_configdir, DIR_SEPARATOR, m_node_id, max_version);
return true;
}
=== modified file 'storage/ndb/src/mgmsrv/ConfigManager.hpp'
--- a/storage/ndb/src/mgmsrv/ConfigManager.hpp 2008-11-06 10:54:21 +0000
+++ b/storage/ndb/src/mgmsrv/ConfigManager.hpp 2008-12-05 09:58:51 +0000
@@ -69,7 +69,7 @@ class ConfigManager : public MgmtThread
NodeId m_node_id;
- const char* m_datadir;
+ const char* m_configdir;
/* Functions used from 'init' */
Config* load_init_config(const char*) const;
@@ -80,7 +80,7 @@ class ConfigManager : public MgmtThread
bool save_config(void);
bool saved_config_exists(BaseString& config_name) const;
Config* load_saved_config(const BaseString& config_name);
- NodeId find_nodeid_from_datadir(void);
+ NodeId find_nodeid_from_configdir(void);
NodeId find_nodeid_from_config(void);
bool init_nodeid(void);
@@ -133,7 +133,7 @@ class ConfigManager : public MgmtThread
public:
ConfigManager(const MgmtSrvr::MgmtOpts&,
- const char* datadir);
+ const char* configdir);
virtual ~ConfigManager();
bool init();
void set_facade(TransporterFacade* facade) { m_facade= facade; };
=== modified file 'storage/ndb/src/mgmsrv/MgmtSrvr.cpp'
--- a/storage/ndb/src/mgmsrv/MgmtSrvr.cpp 2008-11-19 14:47:19 +0000
+++ b/storage/ndb/src/mgmsrv/MgmtSrvr.cpp 2008-12-05 09:58:51 +0000
@@ -330,32 +330,35 @@ create_directory(const char* dir)
/*
- check_datadir
+ check_configdir
- Make sure datadir exist and try to create it if not
+ Make sure configdir exist and try to create it if not
*/
const char*
-MgmtSrvr::check_datadir() const
+MgmtSrvr::check_configdir() const
{
- if (m_opts.datadir)
+ if (m_opts.configdir &&
+ strcmp(m_opts.configdir, MYSQLCLUSTERDIR) != 0)
{
// Specified on commmand line
- if (access(m_opts.datadir, F_OK))
+ if (access(m_opts.configdir, F_OK))
{
- g_eventLogger->error("Directory '%s' specified with --datadir " \
- "does not exist", m_opts.datadir);
+ g_eventLogger->error("Directory '%s' specified with --configdir " \
+ "does not exist. Either create it or pass " \
+ "the path to an already existing directory.",
+ m_opts.configdir);
return NULL;
}
- return m_opts.datadir;
+ return m_opts.configdir;
}
else
{
// Compiled in path MYSQLCLUSTERDIR
if (access(MYSQLCLUSTERDIR, F_OK))
{
- g_eventLogger->info("The default data directory '%s' " \
+ g_eventLogger->info("The default config directory '%s' " \
"does not exist. Trying to create it...",
MYSQLCLUSTERDIR);
@@ -365,12 +368,12 @@ MgmtSrvr::check_datadir() const
g_eventLogger->error("Could not create directory '%s'. " \
"Either create it manually or " \
"specify a different directory with " \
- "--datadir=<path>",
+ "--configdir=<path>",
MYSQLCLUSTERDIR);
return NULL;
}
- g_eventLogger->info("Sucessfully created data directory");
+ g_eventLogger->info("Sucessfully created config directory");
}
return MYSQLCLUSTERDIR;
}
@@ -382,11 +385,11 @@ MgmtSrvr::init()
{
DBUG_ENTER("MgmtSrvr::init");
- const char* datadir;
- if (!(datadir= check_datadir()))
+ const char* configdir;
+ if (!(configdir= check_configdir()))
DBUG_RETURN(false);
- if (!(m_config_manager= new ConfigManager(m_opts, datadir)))
+ if (!(m_config_manager= new ConfigManager(m_opts, configdir)))
{
g_eventLogger->error("Failed to create ConfigManager");
DBUG_RETURN(false);
@@ -647,12 +650,17 @@ MgmtSrvr::setClusterLog(const Config* co
g_eventLogger->close();
- // Get log destination from config
DBUG_ASSERT(_ownNodeId);
ConfigIter iter(config, CFG_SECTION_NODE);
require(iter.find(CFG_NODE_ID, _ownNodeId) == 0);
+ // Update DataDir from config
+ const char *datadir;
+ require(iter.get(CFG_NODE_DATADIR, &datadir) == 0);
+ NdbConfig_SetPath(datadir);
+
+ // Get log destination from config
const char *value;
if(iter.get(CFG_LOG_DESTINATION, &value) == 0){
logdest.assign(value);
@@ -741,6 +749,7 @@ MgmtSrvr::config_changed(NodeId node_id,
}
+ // Setup cluster log
setClusterLog(m_local_config);
if (theFacade)
=== modified file 'storage/ndb/src/mgmsrv/MgmtSrvr.hpp'
--- a/storage/ndb/src/mgmsrv/MgmtSrvr.hpp 2008-11-19 09:09:11 +0000
+++ b/storage/ndb/src/mgmsrv/MgmtSrvr.hpp 2008-12-05 09:58:51 +0000
@@ -129,7 +129,7 @@ public:
const char* bind_address;
int no_nodeid_checks;
int print_full_config;
- const char* datadir;
+ const char* configdir;
int verbose;
};
@@ -141,7 +141,7 @@ public:
private:
/* Function used from 'init' */
- const char* check_datadir() const;
+ const char* check_configdir() const;
public:
/*
=== modified file 'storage/ndb/src/mgmsrv/main.cpp'
--- a/storage/ndb/src/mgmsrv/main.cpp 2008-11-13 12:10:52 +0000
+++ b/storage/ndb/src/mgmsrv/main.cpp 2008-12-05 09:58:51 +0000
@@ -29,7 +29,6 @@
#include <mgmapi_config_parameters.h>
#include <NdbAutoPtr.hpp>
#include <ndb_mgmclient.hpp>
-#include <my_dir.h>
const char *load_default_groups[]= { "mysql_cluster","ndb_mgmd",0 };
@@ -115,10 +114,10 @@ static struct my_option my_long_options[
"Local bind address",
(uchar**) &opts.bind_address, (uchar**) &opts.bind_address, 0,
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },
- { "datadir", 256,
- "Data directory for this node",
- (uchar**) &opts.datadir, (uchar**) &opts.datadir, 0,
- GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },
+ { "configdir", 256,
+ "Directory for the binary configuration files",
+ (uchar**) &opts.configdir, (uchar**) &opts.configdir, 0,
+ GET_STR, REQUIRED_ARG, (longlong)MYSQLCLUSTERDIR, 0, 0, 0, 0, 0 },
{ "verbose", 'v',
"Write more log messages",
(uchar**) &opts.verbose, (uchar**) &opts.verbose, 0,
=== modified file 'storage/ndb/test/run-test/setup.cpp'
--- a/storage/ndb/test/run-test/setup.cpp 2008-11-27 19:42:21 +0000
+++ b/storage/ndb/test/run-test/setup.cpp 2008-12-05 09:58:51 +0000
@@ -296,7 +296,7 @@ load_process(atrt_config& config, atrt_c
proc.m_proc.m_args.append(" --nodaemon --mycnf");
proc.m_proc.m_args.appfmt(" --ndb-nodeid=%d", proc.m_nodeid);
proc.m_proc.m_cwd.assfmt("%sndb_mgmd.%d", dir.c_str(), proc.m_index);
- proc.m_proc.m_args.appfmt(" --datadir=%s", proc.m_proc.m_cwd.c_str());
+ proc.m_proc.m_args.appfmt(" --configdir=%s", proc.m_proc.m_cwd.c_str());
proc.m_proc.m_env.appfmt(" MYSQL_GROUP_SUFFIX=%s",
cluster.m_name.c_str());
break;
| Thread |
|---|
| • bzr commit into mysql-5.1 branch (tomas.ulin:3138) | Tomas Ulin | 5 Dec |