List:Commits« Previous MessageNext Message »
From:Tomas Ulin Date:December 5 2008 11:45am
Subject:bzr commit into mysql-5.1 branch (tomas.ulin:3138)
View as plain text  
#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 Ulin5 Dec