diff options
Diffstat (limited to 'mysql-test/ndb/ndbcluster.sh')
-rw-r--r-- | mysql-test/ndb/ndbcluster.sh | 414 |
1 files changed, 0 insertions, 414 deletions
diff --git a/mysql-test/ndb/ndbcluster.sh b/mysql-test/ndb/ndbcluster.sh deleted file mode 100644 index 2d550294c84..00000000000 --- a/mysql-test/ndb/ndbcluster.sh +++ /dev/null @@ -1,414 +0,0 @@ -#!/bin/sh -# Copyright (C) 2004 MySQL AB -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -# This scripts starts the table handler ndbcluster - -# configurable parameters, make sure to change in mysqlcluterd as well -port=@ndb_port@ -fsdir=`pwd` -# end configurable parameters - -#BASEDIR is always one above mysql-test directory -CWD=`pwd` -cd .. -BASEDIR=`pwd` -cd $CWD - -# Are we using a source or a binary distribution? -if [ -d ../sql ] ; then - SOURCE_DIST=1 - ndbtop=$BASEDIR/storage/ndb - exec_ndb=$ndbtop/src/kernel/ndbd - exec_mgmtsrvr=$ndbtop/src/mgmsrv/ndb_mgmd - exec_waiter=$ndbtop/tools/ndb_waiter - exec_test=$ndbtop/tools/ndb_test_platform - exec_test_ndberror=$ndbtop/src/ndbapi/ndberror_check - exec_mgmtclient=$ndbtop/src/mgmclient/ndb_mgm -else - BINARY_DIST=1 - if test -x "$BASEDIR/libexec/ndbd" - then - exec_ndb=$BASEDIR/libexec/ndbd - exec_mgmtsrvr=$BASEDIR/libexec/ndb_mgmd - else - exec_ndb=$BASEDIR/bin/ndbd - exec_mgmtsrvr=$BASEDIR/bin/ndb_mgmd - fi - exec_waiter=$BASEDIR/bin/ndb_waiter - exec_test=$BASEDIR/bin/ndb_test_platform - exec_test_ndberror= - exec_mgmtclient=$BASEDIR/bin/ndb_mgm -fi - -if $exec_test ; then :; else - echo "ndb not correctly compiled to support this platform" - exit 1 -fi - -if [ $exec_test_ndberror ] ; then -if $exec_test_ndberror ; then :; else - echo "please fix in ndberror.c" - exit 1 -fi -fi - -pidfile=ndbcluster.pid -cfgfile=Ndb.cfg -test_ndb= -stop_ndb= -initial_ndb= -status_ndb= -ndb_diskless=0 -ndbd_nodes=2 -relative_config_data_dir= -opt_core= - -ndb_no_ord=512 -ndb_no_attr=2048 -ndb_con_op=105000 -ndb_dmem=80M -ndb_imem=24M -ndb_pbmem=32M - -VERBOSE=100 -NDB_MGM_EXTRA_OPTS= -NDB_MGMD_EXTRA_OPTS= -NDBD_EXTRA_OPTS= -CHARSETSDIR= - -while test $# -gt 0; do - case "$1" in - --test) - test_ndb=1 - ;; - --stop) - stop_ndb=1 - ;; - --initial) - flags_ndb="$flags_ndb --initial" - initial_ndb=1 - ;; - --debug*) - flags_ndb="$flags_ndb $1" - ;; - --ndbd-nodes=*) - ndbd_nodes=`echo "$1" | sed -e "s;--ndbd-nodes=;;"` - ;; - --status) - status_ndb=1 - ;; - --small) - ndb_no_ord=32 - ndb_con_op=5000 - ndb_dmem=20M - ndb_imem=1M - ndb_pbmem=4M - ;; - --diskless) - ndb_diskless=1 - ;; - --data-dir=*) - fsdir=`echo "$1" | sed -e "s;--data-dir=;;"` - ;; - --relative-config-data-dir) - relative_config_data_dir=1 - ;; - --port=*) - port=`echo "$1" | sed -e "s;--port=;;"` - ;; - --port-base=*) - $ECHO "--port-base option depricated. Ignored." - ;; - --ndb_mgm-extra-opts=*) - NDB_MGM_EXTRA_OPTS=`echo "$1" | sed -e "s;--ndb_mgm-extra-opts=;;"` - ;; - --ndb_mgmd-extra-opts=*) - NDB_MGMD_EXTRA_OPTS=`echo "$1" | sed -e "s;--ndb_mgmd-extra-opts=;;"` - ;; - --ndbd-extra-opts=*) - NDBD_EXTRA_OPTS=`echo "$1" | sed -e "s;--ndbd-extra-opts=;;"` - ;; - --character-sets-dir=*) - CHARSETSDIR=`echo "$1" | sed -e "s;--character-sets-dir=;;"` - ;; - --core) - opt_core="--core" - ;; - --verbose=*) - VERBOSE=`echo "$1" | sed -e "s;--verbose=;;"` - ;; - -- ) shift; break ;; - --* ) $ECHO "Unrecognized option: $1"; exit 1 ;; - * ) break ;; - esac - shift -done - -fs_ndb="$fsdir/ndbcluster-$port" -config_ini=ndb/ndb_config_${ndbd_nodes}_node.ini - -NDB_HOME= -if [ ! -d "$fsdir" ]; then - echo "$fsdir missing" - exit 1 -fi -if [ ! -x "$exec_ndb" ]; then - echo "$exec_ndb missing" - exit 1 -fi -if [ ! -x "$exec_mgmtsrvr" ]; then - echo "$exec_mgmtsrvr missing" - exit 1 -fi -if [ ! -x "$exec_waiter" ]; then - echo "$exec_waiter missing" - exit 1 -fi -if [ ! -f "$config_ini" ]; then - echo "$config_ini missing, unsupported number of nodes" - exit 1 -fi - -exec_mgmtclient="$exec_mgmtclient --no-defaults $opt_core $NDB_MGM_EXTRA_OPTS" -exec_mgmtsrvr="$exec_mgmtsrvr --no-defaults $opt_core $NDB_MGMD_EXTRA_OPTS" -exec_ndb="$exec_ndb --no-defaults $opt_core $NDBD_EXTRA_OPTS --character-sets-dir=$CHARSETSDIR" -exec_waiter="$exec_waiter --no-defaults $opt_core" - -ndb_host="localhost" -ndb_mgmd_port=$port -NDB_CONNECTSTRING="host=$ndb_host:$ndb_mgmd_port" -export NDB_CONNECTSTRING - -sleep_until_file_created () { - file=$1 - loop=$2 - org_time=$2 - message=$3 - while (test $loop -gt 0) - do - if [ -r $file ] - then - return 0 - fi - sleep 1 - loop=`expr $loop - 1` - done - if [ $message ] - then - echo $message - fi - echo "ERROR: $file was not created in $org_time seconds; Aborting" - return 1; -} - -start_default_ndbcluster() { - -# do some checks - -if [ "$initial_ndb" ] ; then - [ -d "$fs_ndb" ] || mkdir "$fs_ndb" -fi -if [ -d "$fs_ndb" ]; then :; else - echo "$fs_ndb filesystem directory does not exist" - exit 1 -fi - -# Start management server as deamon - -# Edit file system path and ports in config file -if [ $relative_config_data_dir ] ; then - config_fs_ndb="." -else - config_fs_ndb=$fs_ndb -fi -if [ $initial_ndb ] ; then - rm -rf $fs_ndb/ndb_* 2>&1 | cat > /dev/null - sed \ - -e s,"CHOOSE_MaxNoOfAttributes","$ndb_no_attr",g \ - -e s,"CHOOSE_MaxNoOfOrderedIndexes","$ndb_no_ord",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","$config_fs_ndb",g \ - -e s,"CHOOSE_PORT_MGM","$ndb_mgmd_port",g \ - -e s,"CHOOSE_DiskPageBufferMemory","$ndb_pbmem",g \ - < "$config_ini" \ - > "$fs_ndb/config.ini" -fi - -rm -f "$cfgfile" 2>&1 | cat > /dev/null -rm -f "$fs_ndb/$cfgfile" 2>&1 | cat > /dev/null - -if ( cd "$fs_ndb" ; $exec_mgmtsrvr -f config.ini ) ; then :; else - echo "Unable to start $exec_mgmtsrvr from `pwd`" - exit 1 -fi -if sleep_until_file_created $fs_ndb/ndb_`expr $ndbd_nodes + 1`.pid 120 -then :; else - exit 1 -fi -cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile" - -# Start database node - -id=1 -while [ $id -le $ndbd_nodes ] -do - if [ `expr $VERBOSE \> 1` = 1 ] ; then - echo "Starting ndbd $id($ndbd_nodes)" - fi - ( cd "$fs_ndb" ; $exec_ndb $flags_ndb & ) - if sleep_until_file_created $fs_ndb/ndb_${id}.pid 120 - then :; else - stop_default_ndbcluster - exit 1 - fi - cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile" - id=`expr $id + 1` -done - -# test if Ndb Cluster starts properly - -if [ `expr $VERBOSE \> 1` = 1 ] ; then - echo "Waiting for NDB data nodes to start..." -fi -if ( $exec_waiter ) | grep "NDBT_ProgramExit: 0 - OK" > /dev/null 2>&1 ; then :; else - if [ `expr $VERBOSE \> 0` = 1 ] ; then - echo "Ndbcluster startup failed" - fi - stop_default_ndbcluster - exit 1 -fi -if [ `expr $VERBOSE \> 1` = 1 ] ; then - echo "Ok" -fi - -cat `find "$fs_ndb" -name 'ndb_*.pid'` > $fs_ndb/$pidfile - -if [ `expr $VERBOSE \> 2` = 1 ] ; then - status_ndbcluster -fi -} - -status_ndbcluster() { - # Start management client - $exec_mgmtclient -e show -} - -stop_default_ndbcluster() { - -# Start management client - -exec_mgmtclient="$exec_mgmtclient --try-reconnect=1" - -$exec_mgmtclient -e shutdown 2>&1 | cat > /dev/null - -if [ -f "$fs_ndb/$pidfile" ] ; then - kill_pids=`cat "$fs_ndb/$pidfile"` - attempt=0 - while [ $attempt -lt 10 ] ; do - new_kill_pid="" - kill_pids2="" - for p in $kill_pids ; do - kill -0 $p 2> /dev/null - if [ $? -eq 0 ] ; then - new_kill_pid="$p $new_kill_pid" - kill_pids2="-$p $kill_pids2" - fi - done - kill_pids=$new_kill_pid - if [ -z "$kill_pids" ] ; then - break - fi - sleep 1 - attempt=`expr $attempt + 1` - done - if [ "$kill_pids2" != "" ] ; then - echo "Failed to shutdown ndbcluster, executing kill "$kill_pids2 - kill -9 -- $kill_pids2 2> /dev/null - /bin/kill -9 -- $kill_pids2 2> /dev/null - /usr/bin/kill -9 -- $kill_pids2 2> /dev/null - kill -9 $kill_pids2 2> /dev/null - /bin/kill -9 $kill_pids2 2> /dev/null - /usr/bin/kill -9 $kill_pids2 2> /dev/null - fi - rm "$fs_ndb/$pidfile" -fi -} - -initialize_ndb_test () -{ - fs_result=$fs_ndb/r - rm -rf $fs_result - mkdir $fs_result - echo ------------------ - echo starting ndb tests - echo ------------------ -} - -do_ndb_test () -{ - test_name=$1 - - clusterlog=$fs_ndb/ndb_3_cluster.log - - test_log_result=$fs_result/${test_name}_log.result - test_log_reject=$fs_result/${test_name}_log.reject - test_result=$fs_result/${test_name}.result - test_reject=$fs_result/${test_name}.reject - - clean_log='s/.*\[MgmSrvr\]//' - - cat $clusterlog ndb/${test_name}_log.result | sed -e $clean_log > $test_log_result - - cp ndb/${test_name}.result $test_result - - cat ndb/${test_name}.test | $exec_mgmtclient > $test_reject - cat $clusterlog | sed -e $clean_log > $test_log_reject - - t="pass" - diff -C 5 $test_result $test_reject || t="fail" - printf "ndb_mgm output %20s [%s]\n" $test_name $t - t="pass" - diff -C 5 $test_log_result $test_log_reject || t="fail" - printf "clusterlog output %20s [%s]\n" $test_name $t -} - -if [ $status_ndb ] ; then - status_ndbcluster - exit 0 -fi - -if [ $stop_ndb ] ; then - stop_default_ndbcluster -else - start_default_ndbcluster -fi - -if [ $test_ndb ] ; then - initialize_ndb_test - all_tests=`ls ndb/*.test | sed "s#ndb/##" | sed "s#.test##"` - for a in $all_tests ; do - do_ndb_test $a - done - echo ------------------ - echo shutting down cluster - stop_default_ndbcluster -fi - -exit 0 |