Loading BitKeeper/etc/logging_ok +1 −0 Original line number Diff line number Diff line Loading @@ -154,6 +154,7 @@ ram@gw.udmsearch.izhnet.ru ram@mysql.r18.ru ram@ram.(none) ranger@regul.home.lan rburnett@build.mysql.com root@home.(none) root@x3.internalnet salle@banica.(none) Loading include/my_time.h +1 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ C_MODE_START extern ulonglong log_10_int[20]; extern uchar days_in_month[]; /* Portable time_t replacement. Loading mysql-test/ndb/ndb_config_2_node.ini +1 −2 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ DataMemory: CHOOSE_DataMemory IndexMemory: CHOOSE_IndexMemory Diskless: CHOOSE_Diskless TimeBetweenWatchDogCheck: 30000 FileSystemPath: CHOOSE_FILESYSTEM [COMPUTER] Id: 1 Loading @@ -16,11 +17,9 @@ HostName: CHOOSE_HOSTNAME_2 [DB] ExecuteOnComputer: 1 FileSystemPath: CHOOSE_FILESYSTEM_NODE_1 [DB] ExecuteOnComputer: 2 FileSystemPath: CHOOSE_FILESYSTEM_NODE_2 [MGM] PortNumber: CHOOSE_PORT_MGM Loading mysql-test/ndb/ndbcluster.sh +27 −32 Original line number Diff line number Diff line Loading @@ -54,7 +54,7 @@ while test $# -gt 0; do stop_ndb=1 ;; --initial) flags_ndb=$flags_ndb" -i" flags_ndb="$flags_ndb -i" initial_ndb=1 ;; --status) Loading @@ -81,20 +81,18 @@ while test $# -gt 0; do shift done fs_ndb=$fsdir/ndbcluster-$port_base fs_name_1=$fs_ndb/node-1-fs fs_name_2=$fs_ndb/node-2-fs fs_ndb="$fsdir/ndbcluster-$port_base" NDB_HOME= if [ ! -x $fsdir ]; then if [ ! -x "$fsdir" ]; then echo "$fsdir missing" exit 1 fi if [ ! -x $exec_ndb ]; then if [ ! -x "$exec_ndb" ]; then echo "$exec_ndb missing" exit 1 fi if [ ! -x $exec_mgmtsrvr ]; then if [ ! -x "$exec_mgmtsrvr" ]; then echo "$exec_mgmtsrvr missing" exit 1 fi Loading @@ -108,12 +106,10 @@ start_default_ndbcluster() { # do some checks if [ $initial_ndb ] ; then [ -d $fs_ndb ] || mkdir $fs_ndb [ -d $fs_name_1 ] || mkdir $fs_name_1 [ -d $fs_name_2 ] || mkdir $fs_name_2 if [ "$initial_ndb" ] ; then [ -d "$fs_ndb" ] || mkdir "$fs_ndb" fi if [ -d "$fs_ndb" -a -d "$fs_name_1" -a -d "$fs_name_2" ]; then :; else if [ -d "$fs_ndb" ]; then :; else echo "$fs_ndb filesystem directory does not exist" exit 1 fi Loading @@ -128,42 +124,41 @@ port_transporter=`expr $ndb_mgmd_port + 2` if [ $initial_ndb ] ; then sed \ -e s,"CHOOSE_MaxNoOfConcurrentOperations",$ndb_con_op,g \ -e s,"CHOOSE_DataMemory",$ndb_dmem,g \ -e s,"CHOOSE_IndexMemory",$ndb_imem,g \ -e s,"CHOOSE_Diskless",$ndb_diskless,g \ -e s,"CHOOSE_MaxNoOfConcurrentOperations","$ndb_con_op",g \ -e s,"CHOOSE_DataMemory","$ndb_dmem",g \ -e s,"CHOOSE_IndexMemory","$ndb_imem",g \ -e s,"CHOOSE_Diskless","$ndb_diskless",g \ -e s,"CHOOSE_HOSTNAME_".*,"$ndb_host",g \ -e s,"CHOOSE_FILESYSTEM_NODE_1","$fs_name_1",g \ -e s,"CHOOSE_FILESYSTEM_NODE_2","$fs_name_2",g \ -e s,"CHOOSE_PORT_MGM",$ndb_mgmd_port,g \ -e s,"CHOOSE_PORT_TRANSPORTER",$port_transporter,g \ -e s,"CHOOSE_FILESYSTEM","$fs_ndb",g \ -e s,"CHOOSE_PORT_MGM","$ndb_mgmd_port",g \ -e s,"CHOOSE_PORT_TRANSPORTER","$port_transporter",g \ < ndb/ndb_config_2_node.ini \ > "$fs_ndb/config.ini" fi rm -f $cfgfile 2>&1 | cat > /dev/null rm -f $fs_ndb/$cfgfile 2>&1 | cat > /dev/null rm -f "$cfgfile" 2>&1 | cat > /dev/null rm -f "$fs_ndb/$cfgfile" 2>&1 | cat > /dev/null if ( cd $fs_ndb ; $exec_mgmtsrvr -d -c config.ini ) ; then :; else if ( cd "$fs_ndb" ; $exec_mgmtsrvr -d -c config.ini ) ; then :; else echo "Unable to start $exec_mgmtsrvr from `pwd`" exit 1 fi cat `find $fs_ndb -name 'ndb_*.pid'` > $fs_ndb/$pidfile cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile" # Start database node echo "Starting ndbd" ( cd $fs_ndb ; $exec_ndb -d $flags_ndb & ) ( cd "$fs_ndb" ; $exec_ndb -d $flags_ndb & ) cat `find $fs_ndb -name 'ndb_*.pid'` > $fs_ndb/$pidfile cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile" # Start database node echo "Starting ndbd" ( cd $fs_ndb ; $exec_ndb -d $flags_ndb & ) ( cd "$fs_ndb" ; $exec_ndb -d $flags_ndb & ) cat `find $fs_ndb -name 'ndb_*.pid'` > $fs_ndb/$pidfile cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile" # test if Ndb Cluster starts properly Loading @@ -173,7 +168,7 @@ if ( $exec_waiter ) | grep "NDBT_ProgramExit: 0 - OK"; then :; else exit 1 fi cat `find $fs_ndb -name 'ndb_*.pid'` > $fs_ndb/$pidfile cat `find "$fs_ndb" -name 'ndb_*.pid'` > $fs_ndb/$pidfile status_ndbcluster } Loading @@ -200,9 +195,9 @@ exec_mgmtclient="$exec_mgmtclient --try-reconnect=1" echo "all stop" | $exec_mgmtclient 2>&1 | cat > /dev/null if [ -f $fs_ndb/$pidfile ] ; then kill -9 `cat $fs_ndb/$pidfile` 2> /dev/null rm $fs_ndb/$pidfile if [ -f "$fs_ndb/$pidfile" ] ; then kill -9 `cat "$fs_ndb/$pidfile"` 2> /dev/null rm "$fs_ndb/$pidfile" fi } Loading ndb/src/common/mgmcommon/ConfigInfo.cpp +78 −50 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <NdbTCP.h> #include "ConfigInfo.hpp" #include <mgmapi_config_parameters.h> #include <ndb_limits.h> Loading Loading @@ -48,24 +49,25 @@ sizeof(m_sectionNames)/sizeof(char*); /**************************************************************************** * Section Rules declarations ****************************************************************************/ bool transformComputer(InitConfigFileParser::Context & ctx, const char *); bool transformSystem(InitConfigFileParser::Context & ctx, const char *); bool transformExternalSystem(InitConfigFileParser::Context & ctx, const char *); bool transformNode(InitConfigFileParser::Context & ctx, const char *); bool transformExtNode(InitConfigFileParser::Context & ctx, const char *); bool transformConnection(InitConfigFileParser::Context & ctx, const char *); bool applyDefaultValues(InitConfigFileParser::Context & ctx, const char *); bool checkMandatory(InitConfigFileParser::Context & ctx, const char *); bool fixPortNumber(InitConfigFileParser::Context & ctx, const char *); bool fixShmkey(InitConfigFileParser::Context & ctx, const char *); bool checkDbConstraints(InitConfigFileParser::Context & ctx, const char *); bool checkConnectionConstraints(InitConfigFileParser::Context &, const char *); bool fixNodeHostname(InitConfigFileParser::Context & ctx, const char * data); bool fixHostname(InitConfigFileParser::Context & ctx, const char * data); bool fixNodeId(InitConfigFileParser::Context & ctx, const char * data); bool fixExtConnection(InitConfigFileParser::Context & ctx, const char * data); bool fixDepricated(InitConfigFileParser::Context & ctx, const char *); bool saveInConfigValues(InitConfigFileParser::Context & ctx, const char *); static bool transformComputer(InitConfigFileParser::Context & ctx, const char *); static bool transformSystem(InitConfigFileParser::Context & ctx, const char *); static bool transformExternalSystem(InitConfigFileParser::Context & ctx, const char *); static bool transformNode(InitConfigFileParser::Context & ctx, const char *); static bool transformExtNode(InitConfigFileParser::Context & ctx, const char *); static bool transformConnection(InitConfigFileParser::Context & ctx, const char *); static bool applyDefaultValues(InitConfigFileParser::Context & ctx, const char *); static bool checkMandatory(InitConfigFileParser::Context & ctx, const char *); static bool fixPortNumber(InitConfigFileParser::Context & ctx, const char *); static bool fixShmkey(InitConfigFileParser::Context & ctx, const char *); static bool checkDbConstraints(InitConfigFileParser::Context & ctx, const char *); static bool checkConnectionConstraints(InitConfigFileParser::Context &, const char *); static bool checkTCPConstraints(InitConfigFileParser::Context &, const char *); static bool fixNodeHostname(InitConfigFileParser::Context & ctx, const char * data); static bool fixHostname(InitConfigFileParser::Context & ctx, const char * data); static bool fixNodeId(InitConfigFileParser::Context & ctx, const char * data); static bool fixExtConnection(InitConfigFileParser::Context & ctx, const char * data); static bool fixDepricated(InitConfigFileParser::Context & ctx, const char *); static bool saveInConfigValues(InitConfigFileParser::Context & ctx, const char *); const ConfigInfo::SectionRule ConfigInfo::m_SectionRules[] = { Loading Loading @@ -130,6 +132,8 @@ ConfigInfo::m_SectionRules[] = { { "SCI", checkConnectionConstraints, 0 }, { "OSE", checkConnectionConstraints, 0 }, { "TCP", checkTCPConstraints, "HostName1" }, { "TCP", checkTCPConstraints, "HostName2" }, { "*", checkMandatory, 0 }, Loading @@ -148,13 +152,13 @@ const int ConfigInfo::m_NoOfRules = sizeof(m_SectionRules)/sizeof(SectionRule); /**************************************************************************** * Config Rules declarations ****************************************************************************/ bool add_node_connections(Vector<ConfigInfo::ConfigRuleSection>§ions, static bool add_node_connections(Vector<ConfigInfo::ConfigRuleSection>§ions, struct InitConfigFileParser::Context &ctx, const char * rule_data); bool add_server_ports(Vector<ConfigInfo::ConfigRuleSection>§ions, static bool add_server_ports(Vector<ConfigInfo::ConfigRuleSection>§ions, struct InitConfigFileParser::Context &ctx, const char * rule_data); bool check_node_vs_replicas(Vector<ConfigInfo::ConfigRuleSection>§ions, static bool check_node_vs_replicas(Vector<ConfigInfo::ConfigRuleSection>§ions, struct InitConfigFileParser::Context &ctx, const char * rule_data); Loading Loading @@ -812,7 +816,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = { 1}, { CFG_DB_DISCLESS, KEY_INTERNAL, "Discless", "DB", "Diskless", Loading Loading @@ -2219,22 +2223,13 @@ fixNodeHostname(InitConfigFileParser::Context & ctx, const char * data){ require(ctx.m_currentSection->put("HostName", "")); const char * type; if(ctx.m_currentSection->get("Type", &type) && strcmp(type,"DB") == 0) { if(ctx.m_currentSection->get("Type", &type) && strcmp(type,"DB") == 0) { ctx.reportError("Parameter \"ExecuteOnComputer\" missing from DB section" " [%s] starting at line: %d", ctx.fname, ctx.m_sectionLineno); return false; } return true; #if 0 ctx.reportError("Parameter \"ExecuteOnComputer\" missing from section " "[%s] starting at line: %d", ctx.fname, ctx.m_sectionLineno); return false; #endif } const Properties * computer; Loading Loading @@ -2362,6 +2357,22 @@ transformComputer(InitConfigFileParser::Context & ctx, const char * data){ ctx.m_userProperties.get("NoOfComputers", &computers); ctx.m_userProperties.put("NoOfComputers", ++computers, true); const char * hostname = 0; ctx.m_currentSection->get("HostName", &hostname); if(!hostname){ return true; } if(!strcmp(hostname, "localhost") || !strcmp(hostname, "127.0.0.1")){ if(ctx.m_userProperties.get("$computer-localhost", &hostname)){ ctx.reportError("Mixing of localhost with other hostname(%s) is illegal", hostname); return false; } } else { ctx.m_userProperties.put("$computer-localhost", hostname); } return true; } Loading Loading @@ -2449,7 +2460,7 @@ checkMandatory(InitConfigFileParser::Context & ctx, const char * data){ * Transform a string "NodeidX" (e.g. "uppsala.32") * into a Uint32 "NodeIdX" (e.g. 32) and a string "SystemX" (e.g. "uppsala"). */ bool fixNodeId(InitConfigFileParser::Context & ctx, const char * data) static bool fixNodeId(InitConfigFileParser::Context & ctx, const char * data) { char buf[] = "NodeIdX"; buf[6] = data[sizeof("NodeI")]; char sysbuf[] = "SystemX"; sysbuf[6] = data[sizeof("NodeI")]; Loading Loading @@ -2485,7 +2496,7 @@ bool fixNodeId(InitConfigFileParser::Context & ctx, const char * data) * - name of external system in parameter extSystemName, and * - nodeId of external node in parameter extSystemNodeId. */ bool static bool isExtConnection(InitConfigFileParser::Context & ctx, const char **extSystemName, Uint32 * extSystemNodeId){ Loading Loading @@ -2513,7 +2524,7 @@ isExtConnection(InitConfigFileParser::Context & ctx, * If connection is to an external system, then move connection into * external system configuration (i.e. a sub-property). */ bool static bool fixExtConnection(InitConfigFileParser::Context & ctx, const char * data){ const char * extSystemName; Loading Loading @@ -2568,7 +2579,7 @@ fixExtConnection(InitConfigFileParser::Context & ctx, const char * data){ * -# Via Node's ExecuteOnComputer lookup Hostname * -# Add HostName to Connection */ bool static bool fixHostname(InitConfigFileParser::Context & ctx, const char * data){ char buf[] = "NodeIdX"; buf[6] = data[sizeof("HostNam")]; Loading @@ -2591,7 +2602,7 @@ fixHostname(InitConfigFileParser::Context & ctx, const char * data){ /** * Connection rule: Fix port number (using a port number adder) */ bool static bool fixPortNumber(InitConfigFileParser::Context & ctx, const char * data){ Uint32 id1= 0, id2= 0; Loading Loading @@ -2645,7 +2656,7 @@ fixPortNumber(InitConfigFileParser::Context & ctx, const char * data){ /** * DB Node rule: Check various constraints */ bool static bool checkDbConstraints(InitConfigFileParser::Context & ctx, const char *){ Uint32 t1 = 0, t2 = 0; Loading Loading @@ -2678,7 +2689,7 @@ checkDbConstraints(InitConfigFileParser::Context & ctx, const char *){ /** * Connection rule: Check varius constraints */ bool static bool checkConnectionConstraints(InitConfigFileParser::Context & ctx, const char *){ Uint32 id1 = 0, id2 = 0; Loading Loading @@ -2734,6 +2745,22 @@ checkConnectionConstraints(InitConfigFileParser::Context & ctx, const char *){ ctx.fname, ctx.m_sectionLineno); return false; } return true; } static bool checkTCPConstraints(InitConfigFileParser::Context & ctx, const char * data){ const char * host; struct in_addr addr; if(ctx.m_currentSection->get(data, &host) && strlen(host) && Ndb_getInAddr(&addr, host)){ ctx.reportError("Unable to lookup/illegal hostname %s" " - [%s] starting at line: %d", host, ctx.fname, ctx.m_sectionLineno); return false; } return true; } Loading Loading @@ -2777,15 +2804,15 @@ transform(InitConfigFileParser::Context & ctx, return false; } if(newType == ConfigInfo::INT){ if(newType == ConfigInfo::INT || newType == ConfigInfo::BOOL){ require(dst.put(newName, (Uint32)newVal)); } else { } else if(newType == ConfigInfo::INT64) { require(dst.put64(newName, newVal)); } return true; } bool static bool fixDepricated(InitConfigFileParser::Context & ctx, const char * data){ const char * name; /** Loading Loading @@ -2845,7 +2872,7 @@ fixDepricated(InitConfigFileParser::Context & ctx, const char * data){ return true; } bool static bool saveInConfigValues(InitConfigFileParser::Context & ctx, const char * data){ const Properties * sec; if(!ctx.m_currentInfo->get(ctx.fname, &sec)){ Loading Loading @@ -2910,13 +2937,14 @@ saveInConfigValues(InitConfigFileParser::Context & ctx, const char * data){ default: abort(); } require(ok); } ctx.m_configValues.closeSection(); } while(0); return true; } bool static bool add_node_connections(Vector<ConfigInfo::ConfigRuleSection>§ions, struct InitConfigFileParser::Context &ctx, const char * rule_data) Loading Loading @@ -3003,7 +3031,7 @@ add_node_connections(Vector<ConfigInfo::ConfigRuleSection>§ions, } bool add_server_ports(Vector<ConfigInfo::ConfigRuleSection>§ions, static bool add_server_ports(Vector<ConfigInfo::ConfigRuleSection>§ions, struct InitConfigFileParser::Context &ctx, const char * rule_data) { Loading Loading @@ -3042,7 +3070,7 @@ bool add_server_ports(Vector<ConfigInfo::ConfigRuleSection>§ions, return true; } bool static bool check_node_vs_replicas(Vector<ConfigInfo::ConfigRuleSection>§ions, struct InitConfigFileParser::Context &ctx, const char * rule_data) Loading Loading
BitKeeper/etc/logging_ok +1 −0 Original line number Diff line number Diff line Loading @@ -154,6 +154,7 @@ ram@gw.udmsearch.izhnet.ru ram@mysql.r18.ru ram@ram.(none) ranger@regul.home.lan rburnett@build.mysql.com root@home.(none) root@x3.internalnet salle@banica.(none) Loading
include/my_time.h +1 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ C_MODE_START extern ulonglong log_10_int[20]; extern uchar days_in_month[]; /* Portable time_t replacement. Loading
mysql-test/ndb/ndb_config_2_node.ini +1 −2 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ DataMemory: CHOOSE_DataMemory IndexMemory: CHOOSE_IndexMemory Diskless: CHOOSE_Diskless TimeBetweenWatchDogCheck: 30000 FileSystemPath: CHOOSE_FILESYSTEM [COMPUTER] Id: 1 Loading @@ -16,11 +17,9 @@ HostName: CHOOSE_HOSTNAME_2 [DB] ExecuteOnComputer: 1 FileSystemPath: CHOOSE_FILESYSTEM_NODE_1 [DB] ExecuteOnComputer: 2 FileSystemPath: CHOOSE_FILESYSTEM_NODE_2 [MGM] PortNumber: CHOOSE_PORT_MGM Loading
mysql-test/ndb/ndbcluster.sh +27 −32 Original line number Diff line number Diff line Loading @@ -54,7 +54,7 @@ while test $# -gt 0; do stop_ndb=1 ;; --initial) flags_ndb=$flags_ndb" -i" flags_ndb="$flags_ndb -i" initial_ndb=1 ;; --status) Loading @@ -81,20 +81,18 @@ while test $# -gt 0; do shift done fs_ndb=$fsdir/ndbcluster-$port_base fs_name_1=$fs_ndb/node-1-fs fs_name_2=$fs_ndb/node-2-fs fs_ndb="$fsdir/ndbcluster-$port_base" NDB_HOME= if [ ! -x $fsdir ]; then if [ ! -x "$fsdir" ]; then echo "$fsdir missing" exit 1 fi if [ ! -x $exec_ndb ]; then if [ ! -x "$exec_ndb" ]; then echo "$exec_ndb missing" exit 1 fi if [ ! -x $exec_mgmtsrvr ]; then if [ ! -x "$exec_mgmtsrvr" ]; then echo "$exec_mgmtsrvr missing" exit 1 fi Loading @@ -108,12 +106,10 @@ start_default_ndbcluster() { # do some checks if [ $initial_ndb ] ; then [ -d $fs_ndb ] || mkdir $fs_ndb [ -d $fs_name_1 ] || mkdir $fs_name_1 [ -d $fs_name_2 ] || mkdir $fs_name_2 if [ "$initial_ndb" ] ; then [ -d "$fs_ndb" ] || mkdir "$fs_ndb" fi if [ -d "$fs_ndb" -a -d "$fs_name_1" -a -d "$fs_name_2" ]; then :; else if [ -d "$fs_ndb" ]; then :; else echo "$fs_ndb filesystem directory does not exist" exit 1 fi Loading @@ -128,42 +124,41 @@ port_transporter=`expr $ndb_mgmd_port + 2` if [ $initial_ndb ] ; then sed \ -e s,"CHOOSE_MaxNoOfConcurrentOperations",$ndb_con_op,g \ -e s,"CHOOSE_DataMemory",$ndb_dmem,g \ -e s,"CHOOSE_IndexMemory",$ndb_imem,g \ -e s,"CHOOSE_Diskless",$ndb_diskless,g \ -e s,"CHOOSE_MaxNoOfConcurrentOperations","$ndb_con_op",g \ -e s,"CHOOSE_DataMemory","$ndb_dmem",g \ -e s,"CHOOSE_IndexMemory","$ndb_imem",g \ -e s,"CHOOSE_Diskless","$ndb_diskless",g \ -e s,"CHOOSE_HOSTNAME_".*,"$ndb_host",g \ -e s,"CHOOSE_FILESYSTEM_NODE_1","$fs_name_1",g \ -e s,"CHOOSE_FILESYSTEM_NODE_2","$fs_name_2",g \ -e s,"CHOOSE_PORT_MGM",$ndb_mgmd_port,g \ -e s,"CHOOSE_PORT_TRANSPORTER",$port_transporter,g \ -e s,"CHOOSE_FILESYSTEM","$fs_ndb",g \ -e s,"CHOOSE_PORT_MGM","$ndb_mgmd_port",g \ -e s,"CHOOSE_PORT_TRANSPORTER","$port_transporter",g \ < ndb/ndb_config_2_node.ini \ > "$fs_ndb/config.ini" fi rm -f $cfgfile 2>&1 | cat > /dev/null rm -f $fs_ndb/$cfgfile 2>&1 | cat > /dev/null rm -f "$cfgfile" 2>&1 | cat > /dev/null rm -f "$fs_ndb/$cfgfile" 2>&1 | cat > /dev/null if ( cd $fs_ndb ; $exec_mgmtsrvr -d -c config.ini ) ; then :; else if ( cd "$fs_ndb" ; $exec_mgmtsrvr -d -c config.ini ) ; then :; else echo "Unable to start $exec_mgmtsrvr from `pwd`" exit 1 fi cat `find $fs_ndb -name 'ndb_*.pid'` > $fs_ndb/$pidfile cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile" # Start database node echo "Starting ndbd" ( cd $fs_ndb ; $exec_ndb -d $flags_ndb & ) ( cd "$fs_ndb" ; $exec_ndb -d $flags_ndb & ) cat `find $fs_ndb -name 'ndb_*.pid'` > $fs_ndb/$pidfile cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile" # Start database node echo "Starting ndbd" ( cd $fs_ndb ; $exec_ndb -d $flags_ndb & ) ( cd "$fs_ndb" ; $exec_ndb -d $flags_ndb & ) cat `find $fs_ndb -name 'ndb_*.pid'` > $fs_ndb/$pidfile cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile" # test if Ndb Cluster starts properly Loading @@ -173,7 +168,7 @@ if ( $exec_waiter ) | grep "NDBT_ProgramExit: 0 - OK"; then :; else exit 1 fi cat `find $fs_ndb -name 'ndb_*.pid'` > $fs_ndb/$pidfile cat `find "$fs_ndb" -name 'ndb_*.pid'` > $fs_ndb/$pidfile status_ndbcluster } Loading @@ -200,9 +195,9 @@ exec_mgmtclient="$exec_mgmtclient --try-reconnect=1" echo "all stop" | $exec_mgmtclient 2>&1 | cat > /dev/null if [ -f $fs_ndb/$pidfile ] ; then kill -9 `cat $fs_ndb/$pidfile` 2> /dev/null rm $fs_ndb/$pidfile if [ -f "$fs_ndb/$pidfile" ] ; then kill -9 `cat "$fs_ndb/$pidfile"` 2> /dev/null rm "$fs_ndb/$pidfile" fi } Loading
ndb/src/common/mgmcommon/ConfigInfo.cpp +78 −50 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <NdbTCP.h> #include "ConfigInfo.hpp" #include <mgmapi_config_parameters.h> #include <ndb_limits.h> Loading Loading @@ -48,24 +49,25 @@ sizeof(m_sectionNames)/sizeof(char*); /**************************************************************************** * Section Rules declarations ****************************************************************************/ bool transformComputer(InitConfigFileParser::Context & ctx, const char *); bool transformSystem(InitConfigFileParser::Context & ctx, const char *); bool transformExternalSystem(InitConfigFileParser::Context & ctx, const char *); bool transformNode(InitConfigFileParser::Context & ctx, const char *); bool transformExtNode(InitConfigFileParser::Context & ctx, const char *); bool transformConnection(InitConfigFileParser::Context & ctx, const char *); bool applyDefaultValues(InitConfigFileParser::Context & ctx, const char *); bool checkMandatory(InitConfigFileParser::Context & ctx, const char *); bool fixPortNumber(InitConfigFileParser::Context & ctx, const char *); bool fixShmkey(InitConfigFileParser::Context & ctx, const char *); bool checkDbConstraints(InitConfigFileParser::Context & ctx, const char *); bool checkConnectionConstraints(InitConfigFileParser::Context &, const char *); bool fixNodeHostname(InitConfigFileParser::Context & ctx, const char * data); bool fixHostname(InitConfigFileParser::Context & ctx, const char * data); bool fixNodeId(InitConfigFileParser::Context & ctx, const char * data); bool fixExtConnection(InitConfigFileParser::Context & ctx, const char * data); bool fixDepricated(InitConfigFileParser::Context & ctx, const char *); bool saveInConfigValues(InitConfigFileParser::Context & ctx, const char *); static bool transformComputer(InitConfigFileParser::Context & ctx, const char *); static bool transformSystem(InitConfigFileParser::Context & ctx, const char *); static bool transformExternalSystem(InitConfigFileParser::Context & ctx, const char *); static bool transformNode(InitConfigFileParser::Context & ctx, const char *); static bool transformExtNode(InitConfigFileParser::Context & ctx, const char *); static bool transformConnection(InitConfigFileParser::Context & ctx, const char *); static bool applyDefaultValues(InitConfigFileParser::Context & ctx, const char *); static bool checkMandatory(InitConfigFileParser::Context & ctx, const char *); static bool fixPortNumber(InitConfigFileParser::Context & ctx, const char *); static bool fixShmkey(InitConfigFileParser::Context & ctx, const char *); static bool checkDbConstraints(InitConfigFileParser::Context & ctx, const char *); static bool checkConnectionConstraints(InitConfigFileParser::Context &, const char *); static bool checkTCPConstraints(InitConfigFileParser::Context &, const char *); static bool fixNodeHostname(InitConfigFileParser::Context & ctx, const char * data); static bool fixHostname(InitConfigFileParser::Context & ctx, const char * data); static bool fixNodeId(InitConfigFileParser::Context & ctx, const char * data); static bool fixExtConnection(InitConfigFileParser::Context & ctx, const char * data); static bool fixDepricated(InitConfigFileParser::Context & ctx, const char *); static bool saveInConfigValues(InitConfigFileParser::Context & ctx, const char *); const ConfigInfo::SectionRule ConfigInfo::m_SectionRules[] = { Loading Loading @@ -130,6 +132,8 @@ ConfigInfo::m_SectionRules[] = { { "SCI", checkConnectionConstraints, 0 }, { "OSE", checkConnectionConstraints, 0 }, { "TCP", checkTCPConstraints, "HostName1" }, { "TCP", checkTCPConstraints, "HostName2" }, { "*", checkMandatory, 0 }, Loading @@ -148,13 +152,13 @@ const int ConfigInfo::m_NoOfRules = sizeof(m_SectionRules)/sizeof(SectionRule); /**************************************************************************** * Config Rules declarations ****************************************************************************/ bool add_node_connections(Vector<ConfigInfo::ConfigRuleSection>§ions, static bool add_node_connections(Vector<ConfigInfo::ConfigRuleSection>§ions, struct InitConfigFileParser::Context &ctx, const char * rule_data); bool add_server_ports(Vector<ConfigInfo::ConfigRuleSection>§ions, static bool add_server_ports(Vector<ConfigInfo::ConfigRuleSection>§ions, struct InitConfigFileParser::Context &ctx, const char * rule_data); bool check_node_vs_replicas(Vector<ConfigInfo::ConfigRuleSection>§ions, static bool check_node_vs_replicas(Vector<ConfigInfo::ConfigRuleSection>§ions, struct InitConfigFileParser::Context &ctx, const char * rule_data); Loading Loading @@ -812,7 +816,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = { 1}, { CFG_DB_DISCLESS, KEY_INTERNAL, "Discless", "DB", "Diskless", Loading Loading @@ -2219,22 +2223,13 @@ fixNodeHostname(InitConfigFileParser::Context & ctx, const char * data){ require(ctx.m_currentSection->put("HostName", "")); const char * type; if(ctx.m_currentSection->get("Type", &type) && strcmp(type,"DB") == 0) { if(ctx.m_currentSection->get("Type", &type) && strcmp(type,"DB") == 0) { ctx.reportError("Parameter \"ExecuteOnComputer\" missing from DB section" " [%s] starting at line: %d", ctx.fname, ctx.m_sectionLineno); return false; } return true; #if 0 ctx.reportError("Parameter \"ExecuteOnComputer\" missing from section " "[%s] starting at line: %d", ctx.fname, ctx.m_sectionLineno); return false; #endif } const Properties * computer; Loading Loading @@ -2362,6 +2357,22 @@ transformComputer(InitConfigFileParser::Context & ctx, const char * data){ ctx.m_userProperties.get("NoOfComputers", &computers); ctx.m_userProperties.put("NoOfComputers", ++computers, true); const char * hostname = 0; ctx.m_currentSection->get("HostName", &hostname); if(!hostname){ return true; } if(!strcmp(hostname, "localhost") || !strcmp(hostname, "127.0.0.1")){ if(ctx.m_userProperties.get("$computer-localhost", &hostname)){ ctx.reportError("Mixing of localhost with other hostname(%s) is illegal", hostname); return false; } } else { ctx.m_userProperties.put("$computer-localhost", hostname); } return true; } Loading Loading @@ -2449,7 +2460,7 @@ checkMandatory(InitConfigFileParser::Context & ctx, const char * data){ * Transform a string "NodeidX" (e.g. "uppsala.32") * into a Uint32 "NodeIdX" (e.g. 32) and a string "SystemX" (e.g. "uppsala"). */ bool fixNodeId(InitConfigFileParser::Context & ctx, const char * data) static bool fixNodeId(InitConfigFileParser::Context & ctx, const char * data) { char buf[] = "NodeIdX"; buf[6] = data[sizeof("NodeI")]; char sysbuf[] = "SystemX"; sysbuf[6] = data[sizeof("NodeI")]; Loading Loading @@ -2485,7 +2496,7 @@ bool fixNodeId(InitConfigFileParser::Context & ctx, const char * data) * - name of external system in parameter extSystemName, and * - nodeId of external node in parameter extSystemNodeId. */ bool static bool isExtConnection(InitConfigFileParser::Context & ctx, const char **extSystemName, Uint32 * extSystemNodeId){ Loading Loading @@ -2513,7 +2524,7 @@ isExtConnection(InitConfigFileParser::Context & ctx, * If connection is to an external system, then move connection into * external system configuration (i.e. a sub-property). */ bool static bool fixExtConnection(InitConfigFileParser::Context & ctx, const char * data){ const char * extSystemName; Loading Loading @@ -2568,7 +2579,7 @@ fixExtConnection(InitConfigFileParser::Context & ctx, const char * data){ * -# Via Node's ExecuteOnComputer lookup Hostname * -# Add HostName to Connection */ bool static bool fixHostname(InitConfigFileParser::Context & ctx, const char * data){ char buf[] = "NodeIdX"; buf[6] = data[sizeof("HostNam")]; Loading @@ -2591,7 +2602,7 @@ fixHostname(InitConfigFileParser::Context & ctx, const char * data){ /** * Connection rule: Fix port number (using a port number adder) */ bool static bool fixPortNumber(InitConfigFileParser::Context & ctx, const char * data){ Uint32 id1= 0, id2= 0; Loading Loading @@ -2645,7 +2656,7 @@ fixPortNumber(InitConfigFileParser::Context & ctx, const char * data){ /** * DB Node rule: Check various constraints */ bool static bool checkDbConstraints(InitConfigFileParser::Context & ctx, const char *){ Uint32 t1 = 0, t2 = 0; Loading Loading @@ -2678,7 +2689,7 @@ checkDbConstraints(InitConfigFileParser::Context & ctx, const char *){ /** * Connection rule: Check varius constraints */ bool static bool checkConnectionConstraints(InitConfigFileParser::Context & ctx, const char *){ Uint32 id1 = 0, id2 = 0; Loading Loading @@ -2734,6 +2745,22 @@ checkConnectionConstraints(InitConfigFileParser::Context & ctx, const char *){ ctx.fname, ctx.m_sectionLineno); return false; } return true; } static bool checkTCPConstraints(InitConfigFileParser::Context & ctx, const char * data){ const char * host; struct in_addr addr; if(ctx.m_currentSection->get(data, &host) && strlen(host) && Ndb_getInAddr(&addr, host)){ ctx.reportError("Unable to lookup/illegal hostname %s" " - [%s] starting at line: %d", host, ctx.fname, ctx.m_sectionLineno); return false; } return true; } Loading Loading @@ -2777,15 +2804,15 @@ transform(InitConfigFileParser::Context & ctx, return false; } if(newType == ConfigInfo::INT){ if(newType == ConfigInfo::INT || newType == ConfigInfo::BOOL){ require(dst.put(newName, (Uint32)newVal)); } else { } else if(newType == ConfigInfo::INT64) { require(dst.put64(newName, newVal)); } return true; } bool static bool fixDepricated(InitConfigFileParser::Context & ctx, const char * data){ const char * name; /** Loading Loading @@ -2845,7 +2872,7 @@ fixDepricated(InitConfigFileParser::Context & ctx, const char * data){ return true; } bool static bool saveInConfigValues(InitConfigFileParser::Context & ctx, const char * data){ const Properties * sec; if(!ctx.m_currentInfo->get(ctx.fname, &sec)){ Loading Loading @@ -2910,13 +2937,14 @@ saveInConfigValues(InitConfigFileParser::Context & ctx, const char * data){ default: abort(); } require(ok); } ctx.m_configValues.closeSection(); } while(0); return true; } bool static bool add_node_connections(Vector<ConfigInfo::ConfigRuleSection>§ions, struct InitConfigFileParser::Context &ctx, const char * rule_data) Loading Loading @@ -3003,7 +3031,7 @@ add_node_connections(Vector<ConfigInfo::ConfigRuleSection>§ions, } bool add_server_ports(Vector<ConfigInfo::ConfigRuleSection>§ions, static bool add_server_ports(Vector<ConfigInfo::ConfigRuleSection>§ions, struct InitConfigFileParser::Context &ctx, const char * rule_data) { Loading Loading @@ -3042,7 +3070,7 @@ bool add_server_ports(Vector<ConfigInfo::ConfigRuleSection>§ions, return true; } bool static bool check_node_vs_replicas(Vector<ConfigInfo::ConfigRuleSection>§ions, struct InitConfigFileParser::Context &ctx, const char * rule_data) Loading