diff options
Diffstat (limited to 'mysql-test/mysql-test-run.sh')
-rw-r--r-- | mysql-test/mysql-test-run.sh | 286 |
1 files changed, 239 insertions, 47 deletions
diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh index c6185e990bb..7869a9f6f3a 100644 --- a/mysql-test/mysql-test-run.sh +++ b/mysql-test/mysql-test-run.sh @@ -218,8 +218,8 @@ MY_LOG_DIR="$MYSQL_TEST_DIR/var/log" # # Set LD_LIBRARY_PATH if we are using shared libraries # -LD_LIBRARY_PATH="$BASEDIR/lib:$BASEDIR/libmysql/.libs:$BASEDIR/zlib/.libs:$LD_LIBRARY_PATH" -DYLD_LIBRARY_PATH="$BASEDIR/lib:$BASEDIR/libmysql/.libs:$BASEDIR/zlib/.libs:$DYLD_LIBRARY_PATH" +LD_LIBRARY_PATH="$BASEDIR/lib:$BASEDIR/libmysql/.libs:$BASEDIR/libmysql_r/.libs:$BASEDIR/zlib/.libs:$LD_LIBRARY_PATH" +DYLD_LIBRARY_PATH="$BASEDIR/lib:$BASEDIR/libmysql/.libs:$BASEDIR/libmysql_r/.libs:$BASEDIR/zlib/.libs:$DYLD_LIBRARY_PATH" export LD_LIBRARY_PATH DYLD_LIBRARY_PATH # @@ -231,11 +231,14 @@ export UMASK UMASK_DIR MASTER_RUNNING=0 MASTER1_RUNNING=0 +MASTER_MYHOST=127.0.0.1 MASTER_MYPORT=9306 SLAVE_RUNNING=0 +SLAVE_MYHOST=127.0.0.1 SLAVE_MYPORT=9308 # leave room for 2 masters for cluster tests MYSQL_MANAGER_PORT=9305 # needs to be out of the way of slaves NDBCLUSTER_PORT=9350 +NDBCLUSTER_PORT_SLAVE=9358 MYSQL_MANAGER_PW_FILE=$MYSQL_TEST_DIR/var/tmp/manager.pwd MYSQL_MANAGER_LOG=$MYSQL_TEST_DIR/var/log/manager.log MYSQL_MANAGER_USER=root @@ -255,12 +258,14 @@ if [ -n "$MTR_BUILD_THREAD" ] ; then MYSQL_MANAGER_PORT=`expr $MASTER_MYPORT + 2` SLAVE_MYPORT=`expr $MASTER_MYPORT + 3` NDBCLUSTER_PORT=`expr $MASTER_MYPORT + 6` - - echo "Using MTR_BUILD_THREAD = $MTR_BUILD_THREAD" - echo "Using MASTER_MYPORT = $MASTER_MYPORT" - echo "Using MYSQL_MANAGER_PORT = $MYSQL_MANAGER_PORT" - echo "Using SLAVE_MYPORT = $SLAVE_MYPORT" - echo "Using NDBCLUSTER_PORT = $NDBCLUSTER_PORT" + NDBCLUSTER_PORT_SLAVE=`expr $MASTER_MYPORT + 7` + + echo "Using MTR_BUILD_THREAD = $MTR_BUILD_THREAD" + echo "Using MASTER_MYPORT = $MASTER_MYPORT" + echo "Using MYSQL_MANAGER_PORT = $MYSQL_MANAGER_PORT" + echo "Using SLAVE_MYPORT = $SLAVE_MYPORT" + echo "Using NDBCLUSTER_PORT = $NDBCLUSTER_PORT" + echo "Using NDBCLUSTER_PORT_SLAVE = $NDBCLUSTER_PORT_SLAVE" fi NO_SLAVE=0 @@ -271,11 +276,19 @@ EXTRA_MASTER_OPT="" EXTRA_MYSQL_TEST_OPT="" EXTRA_MYSQLCHECK_OPT="" EXTRA_MYSQLDUMP_OPT="" +EXTRA_MYSQLSLAP_OPT="" EXTRA_MYSQLSHOW_OPT="" EXTRA_MYSQLBINLOG_OPT="" USE_RUNNING_SERVER=0 USE_NDBCLUSTER=@USE_NDBCLUSTER@ +USE_NDBCLUSTER_SLAVE=@USE_NDBCLUSTER@ +USE_NDBCLUSTER_ALL=0 +USE_NDBCLUSTER_ONLY=0 USE_RUNNING_NDBCLUSTER="" +USE_RUNNING_NDBCLUSTER_SLAVE="" +NDB_EXTRA_TEST=0 +NDB_VERBOSE=0 +NDBCLUSTER_EXTRA_OPTS="" USE_PURIFY="" PURIFY_LOGS="" DO_GCOV="" @@ -301,6 +314,8 @@ TEST_MODE="" NDB_MGM_EXTRA_OPTS= NDB_MGMD_EXTRA_OPTS= NDBD_EXTRA_OPTS= +MASTER_MYSQLDBINLOG=1 +SLAVE_MYSQLDBINLOG=1 DO_STRESS="" STRESS_SUITE="main" @@ -320,6 +335,7 @@ while test $# -gt 0; do USE_MANAGER=0 NO_SLAVE=1 USE_RUNNING_SERVER=0 USE_NDBCLUSTER="" + USE_NDBCLUSTER_SLAVE="" TEST_MODE="$TEST_MODE embedded" ;; --purify) USE_PURIFY=1 @@ -339,9 +355,28 @@ while test $# -gt 0; do --extern) USE_RUNNING_SERVER=1 ;; --with-ndbcluster) USE_NDBCLUSTER="--ndbcluster" ;; + --with-ndbcluster-slave) + USE_NDBCLUSTER_SLAVE="--ndbcluster" ;; + --with-ndbcluster-all) + USE_NDBCLUSTER="--ndbcluster" + USE_NDBCLUSTER_SLAVE="--ndbcluster" + USE_NDBCLUSTER_ALL=1 ;; + --with-ndbcluster-only) + USE_NDBCLUSTER="--ndbcluster" + USE_NDBCLUSTER_SLAVE="--ndbcluster" + USE_NDBCLUSTER_ONLY=1 ;; --ndb-connectstring=*) USE_NDBCLUSTER="--ndbcluster" ; USE_RUNNING_NDBCLUSTER=`$ECHO "$1" | $SED -e "s;--ndb-connectstring=;;"` ;; + --ndb-connectstring-slave=*) + USE_NDBCLUSTER_SLAVE="--ndbcluster" ; + USE_RUNNING_NDBCLUSTER_SLAVE=`$ECHO "$1" | $SED -e "s;--ndb-connectstring-slave=;;"` ;; + --ndb-extra-test) + NDBCLUSTER_EXTRA_OPTS=" " + NDB_EXTRA_TEST=1 ; + ;; + --ndb-verbose) + NDB_VERBOSE=2 ;; --ndb_mgm-extra-opts=*) NDB_MGM_EXTRA_OPTS=`$ECHO "$1" | $SED -e "s;--ndb_mgm-extra-opts=;;"` ;; --ndb_mgmd-extra-opts=*) @@ -358,6 +393,8 @@ while test $# -gt 0; do --slave_port=*) SLAVE_MYPORT=`$ECHO "$1" | $SED -e "s;--slave_port=;;"` ;; --manager-port=*) MYSQL_MANAGER_PORT=`$ECHO "$1" | $SED -e "s;--manager_port=;;"` ;; --ndbcluster_port=*) NDBCLUSTER_PORT=`$ECHO "$1" | $SED -e "s;--ndbcluster_port=;;"` ;; + --ndbcluster-port=*) NDBCLUSTER_PORT=`$ECHO "$1" | $SED -e "s;--ndbcluster-port=;;"` ;; + --ndbcluster-port-slave=*) NDBCLUSTER_PORT_SLAVE=`$ECHO "$1" | $SED -e "s;--ndbcluster-port-slave=;;"` ;; --with-openssl) EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT \ --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem \ @@ -514,6 +551,10 @@ while test $# -gt 0; do TMP=`$ECHO "$1" | $SED -e "s;--valgrind-options=;;"` VALGRIND="$VALGRIND $TMP" ;; + --skip-ndbcluster-slave | --skip-ndb-slave) + USE_NDBCLUSTER_SLAVE="" + EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --skip-ndbcluster" + ;; --valgrind-mysqltest | --valgrind-mysqltest-all) find_valgrind; VALGRIND_MYSQLTEST=$FIND_VALGRIND @@ -524,9 +565,12 @@ while test $# -gt 0; do ;; --skip-ndbcluster | --skip-ndb) USE_NDBCLUSTER="" + USE_NDBCLUSTER_SLAVE="" EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --skip-ndbcluster" EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --skip-ndbcluster" ;; + --skip-master-binlog) MASTER_MYSQLDBINLOG=0 ;; + --skip-slave-binlog) SLAVE_MYSQLDBINLOG=0 ;; --skip-*) EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT $1" EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT $1" @@ -545,6 +589,8 @@ while test $# -gt 0; do --debug=d:t:A,$MYSQL_TEST_DIR/var/log/mysqlcheck.trace" EXTRA_MYSQLDUMP_OPT="$EXTRA_MYSQLDUMP_OPT \ --debug=d:t:A,$MYSQL_TEST_DIR/var/log/mysqldump.trace" + EXTRA_MYSQLSLAP_OPT="$EXTRA_MYSQLSLAP_OPT \ + --debug=d:t:A,$MYSQL_TEST_DIR/var/log/mysqlslap.trace" EXTRA_MYSQLSHOW_OPT="$EXTRA_MYSQLSHOW_OPT \ --debug=d:t:A,$MYSQL_TEST_DIR/var/log/mysqlshow.trace" EXTRA_MYSQLBINLOG_OPT="$EXTRA_MYSQLBINLOG_OPT \ @@ -594,9 +640,13 @@ SLAVE_MYERR="$MYSQL_TEST_DIR/var/log/slave.err" CURRENT_TEST="$MYSQL_TEST_DIR/var/log/current_test" SMALL_SERVER="--key_buffer_size=1M --sort_buffer=256K --max_heap_table_size=1M" -export MASTER_MYPORT SLAVE_MYPORT MYSQL_TCP_PORT MASTER_MYSOCK MASTER_MYSOCK1 +export MASTER_MYHOST MASTER_MYPORT SLAVE_MYHOST SLAVE_MYPORT MYSQL_TCP_PORT MASTER_MYSOCK MASTER_MYSOCK1 NDBCLUSTER_OPTS="--port=$NDBCLUSTER_PORT --data-dir=$MYSQL_TEST_DIR/var --ndb_mgm-extra-opts=$NDB_MGM_EXTRA_OPTS --ndb_mgmd-extra-opts=$NDB_MGMD_EXTRA_OPTS --ndbd-extra-opts=$NDBD_EXTRA_OPTS" +NDBCLUSTER_OPTS_SLAVE="--port=$NDBCLUSTER_PORT_SLAVE --data-dir=$MYSQL_TEST_DIR/var" +if [ -n "$USE_NDBCLUSTER_SLAVE" ] ; then + USE_NDBCLUSTER_SLAVE="$USE_NDBCLUSTER_SLAVE --ndb-connectstring=localhost:$NDBCLUSTER_PORT_SLAVE --ndb-extra-logging" +fi NDB_BACKUP_DIR=$MYSQL_TEST_DIR/var/ndbcluster-$NDBCLUSTER_PORT NDB_TOOLS_OUTPUT=$MYSQL_TEST_DIR/var/log/ndb_tools.log @@ -658,6 +708,11 @@ if [ x$SOURCE_DIST = x1 ] ; then else MYSQL_DUMP="$BASEDIR/client/mysqldump" fi + if [ -f "$BASEDIR/client/.libs/mysqlslap" ] ; then + MYSQL_SLAP="$BASEDIR/client/.libs/mysqlslap" + else + MYSQL_SLAP="$BASEDIR/client/mysqlslap" + fi if [ -f "$BASEDIR/client/.libs/mysqlimport" ] ; then MYSQL_IMPORT="$BASEDIR/client/.libs/mysqlimport" else @@ -689,8 +744,8 @@ if [ x$SOURCE_DIST = x1 ] ; then CHARSETSDIR="$BASEDIR/sql/share/charsets" INSTALL_DB="./install_test_db" MYSQL_FIX_SYSTEM_TABLES="$BASEDIR/scripts/mysql_fix_privilege_tables" - NDB_TOOLS_DIR="$BASEDIR/ndb/tools" - NDB_MGM="$BASEDIR/ndb/src/mgmclient/ndb_mgm" + NDB_TOOLS_DIR="$BASEDIR/storage/ndb/tools" + NDB_MGM="$BASEDIR/storage/ndb/src/mgmclient/ndb_mgm" if [ -n "$USE_PURIFY" ] ; then PSUP="$MYSQL_TEST_DIR/suppress.purify" @@ -737,7 +792,7 @@ else fi MYSQL_TEST="$CLIENT_BINDIR/mysqltest" MYSQL_CHECK="$CLIENT_BINDIR/mysqlcheck" - MYSQL_DUMP="$CLIENT_BINDIR/mysqldump" + MYSQL_SLAP="$CLIENT_BINDIR/mysqlslap" MYSQL_SHOW="$CLIENT_BINDIR/mysqlshow" MYSQL_IMPORT="$CLIENT_BINDIR/mysqlimport" MYSQL_BINLOG="$CLIENT_BINDIR/mysqlbinlog" @@ -776,6 +831,13 @@ else MYSQL_TEST="$CLIENT_BINDIR/mysqltest" MYSQL_CLIENT_TEST="$CLIENT_BINDIR/mysql_client_test" fi + if [ -f "$BASEDIR/client/.libs/mysqldump" ] ; then + MYSQL_DUMP="$BASEDIR/client/.libs/mysqldump" + elif [ -f "$BASEDIR/client/mysqldump" ] ; then + MYSQL_DUMP="$BASEDIR/client/mysqldump" + else + MYSQL_DUMP="$BASEDIR/bin/mysqldump" + fi fi if [ -z "$MASTER_MYSQLD" ] @@ -821,13 +883,16 @@ MYSQL_DUMP_DIR="$MYSQL_DUMP" export MYSQL_DUMP_DIR MYSQL_CHECK="$MYSQL_CHECK --no-defaults -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLCHECK_OPT" MYSQL_DUMP="$MYSQL_DUMP --no-defaults -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT" +MYSQL_SLAP="$MYSQL_SLAP -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLSLAP_OPT" +MYSQL_DUMP_SLAVE="$MYSQL_DUMP_DIR --no-defaults -uroot --socket=$SLAVE_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT" MYSQL_SHOW="$MYSQL_SHOW -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLSHOW_OPT" MYSQL_BINLOG="$MYSQL_BINLOG --no-defaults --local-load=$MYSQL_TMP_DIR --character-sets-dir=$CHARSETSDIR $EXTRA_MYSQLBINLOG_OPT" MYSQL_IMPORT="$MYSQL_IMPORT -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT" MYSQL_FIX_SYSTEM_TABLES="$MYSQL_FIX_SYSTEM_TABLES --no-defaults --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD --basedir=$BASEDIR --bindir=$CLIENT_BINDIR --verbose" MYSQL="$MYSQL --no-defaults --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD" -export MYSQL MYSQL_CHECK MYSQL_DUMP MYSQL_SHOW MYSQL_BINLOG MYSQL_FIX_SYSTEM_TABLES MYSQL_IMPORT +export MYSQL MYSQL_CHECK MYSQL_DUMP MYSQL_DUMP_SLAVE MYSQL_SHOW MYSQL_BINLOG MYSQL_FIX_SYSTEM_TABLES MYSQL_IMPORT export CLIENT_BINDIR MYSQL_CLIENT_TEST CHARSETSDIR MYSQL_MY_PRINT_DEFAULTS +export MYSQL_SLAP export NDB_TOOLS_DIR export NDB_MGM export NDB_BACKUP_DIR @@ -835,6 +900,9 @@ export NDB_TOOLS_OUTPUT export PURIFYOPTIONS NDB_STATUS_OK=1 export NDB_STATUS_OK +NDB_SLAVE_STATUS_OK=1 +export NDB_SLAVE_STATUS_OK +export NDB_EXTRA_TEST NDBCLUSTER_PORT NDBCLUSTER_PORT_SLAVE MYSQL_TEST_ARGS="--no-defaults --socket=$MASTER_MYSOCK --database=$DB \ --user=$DBUSER --password=$DBPASSWD --silent -v --skip-safemalloc \ @@ -966,6 +1034,10 @@ disable_test() { report_current_test () { tname=$1 echo "CURRENT_TEST: $tname" >> $MASTER_MYERR + eval "master1_running=\$MASTER1_RUNNING" + if [ x$master1_running = x1 ] ; then + echo "CURRENT_TEST: $tname" >> $MASTER_MYERR"1" + fi if [ -n "$PURIFY_LOGS" ] ; then for log in $PURIFY_LOGS do @@ -1213,24 +1285,32 @@ EOF start_ndbcluster() { - if [ ! -z "$USE_NDBCLUSTER" ] + if [ ! -n "$USE_NDBCLUSTER" ] ; + then + USING_NDBCLUSTER=0 + USE_NDBCLUSTER_OPT= + fi + + if [ x$USING_NDBCLUSTER = x1 -a -z "$USE_NDBCLUSTER_OPT" ] then rm -f $NDB_TOOLS_OUTPUT if [ -z "$USE_RUNNING_NDBCLUSTER" ] then - echo "Starting ndbcluster" - if [ "$DO_BENCH" = 1 ] + if [ "$DO_BENCH" != 1 -a -z "$NDBCLUSTER_EXTRA_OPTS" ] then - NDBCLUSTER_EXTRA_OPTS="" - else NDBCLUSTER_EXTRA_OPTS="--small" fi - ./ndb/ndbcluster $NDBCLUSTER_OPTS $NDBCLUSTER_EXTRA_OPTS --initial || NDB_STATUS_OK=0 + OPTS="$NDBCLUSTER_OPTS $NDBCLUSTER_EXTRA_OPTS --verbose=$NDB_VERBOSE --initial --relative-config-data-dir --core" + if [ "x$NDB_VERBOSE" != "x0" ] ; then + echo "Starting master ndbcluster " $OPTS + fi + ./ndb/ndbcluster $OPTS || NDB_STATUS_OK=0 if [ x$NDB_STATUS_OK != x1 ] ; then if [ x$FORCE != x1 ] ; then exit 1 fi - USE_NDBCLUSTER= + USING_NDBCLUSTER=0 + USE_NDBCLUSTER_OPT= return fi @@ -1239,19 +1319,30 @@ start_ndbcluster() NDB_CONNECTSTRING="$USE_RUNNING_NDBCLUSTER" echo "Using ndbcluster at $NDB_CONNECTSTRING" fi - USE_NDBCLUSTER="$USE_NDBCLUSTER --ndb-connectstring=\"$NDB_CONNECTSTRING\"" + USE_NDBCLUSTER_OPT="$USE_NDBCLUSTER --ndb-connectstring=\"$NDB_CONNECTSTRING\" --ndb-extra-logging" export NDB_CONNECTSTRING fi } +rm_ndbcluster_tables() +{ + $RM -f $1/cluster_replication/apply_status* + $RM -f $1/cluster_replication/schema* +} + stop_ndbcluster() { - if [ ! -z "$USE_NDBCLUSTER" ] + if [ -n "$USE_NDBCLUSTER_OPT" ] then + USE_NDBCLUSTER_OPT= if [ -z "$USE_RUNNING_NDBCLUSTER" ] then # Kill any running ndbcluster stuff + $ECHO "Stopping master cluster" ./ndb/ndbcluster $NDBCLUSTER_OPTS --stop + # remove ndb table the hard way as not to upset later tests + rm_ndbcluster_tables $MASTER_MYDDIR + rm_ndbcluster_tables $MASTER_MYDDIR"1" fi fi } @@ -1296,9 +1387,13 @@ start_master() then CURR_MASTER_MYSQLD_TRACE="$EXTRA_MASTER_MYSQLD_TRACE$1" fi + if [ x$MASTER_MYSQLDBINLOG = x1 ] + then + MASTER_MYSQLD_BINLOG_OPT="--log-bin=$MYSQL_TEST_DIR/var/log/master-bin$1" + fi if [ -z "$DO_BENCH" -a -z "$DO_STRESS" ] then - master_args="--no-defaults --log-bin=$MYSQL_TEST_DIR/var/log/master-bin$1 \ + master_args="--no-defaults \ --server-id=$id \ --basedir=$MY_BASEDIR \ --port=$this_master_myport \ @@ -1306,7 +1401,7 @@ start_master() --local-infile \ --exit-info=256 \ --core \ - $USE_NDBCLUSTER \ + $USE_NDBCLUSTER_OPT \ --datadir=$MASTER_MYDDIR$1 \ --pid-file=$MASTER_MYPID$1 \ --socket=$MASTER_MYSOCK$1 \ @@ -1318,12 +1413,14 @@ start_master() --innodb_data_file_path=ibdata1:128M:autoextend \ --open-files-limit=1024 \ --log-bin-trust-function-creators \ + --loose-binlog-show-xid=0 \ $MASTER_40_ARGS \ $SMALL_SERVER \ - $EXTRA_MASTER_OPT $EXTRA_MASTER_MYSQLD_OPT \ + $MASTER_MYSQLD_BINLOG_OPT \ + $EXTRA_MASTER_MYSQLD_OPT $EXTRA_MASTER_OPT \ $NOT_FIRST_MASTER_EXTRA_OPTS $CURR_MASTER_MYSQLD_TRACE" else - master_args="--no-defaults --log-bin=$MYSQL_TEST_DIR/var/log/master-bin$1 \ + master_args="--no-defaults \ --server-id=$id --rpl-recovery-rank=1 \ --basedir=$MY_BASEDIR --init-rpl-role=master \ --port=$this_master_myport \ @@ -1335,14 +1432,16 @@ start_master() --character-sets-dir=$CHARSETSDIR \ --default-character-set=$CHARACTER_SET \ --core \ - $USE_NDBCLUSTER \ + $USE_NDBCLUSTER_OPT \ --tmpdir=$MYSQL_TMP_DIR \ --language=$LANGUAGE \ --innodb_data_file_path=ibdata1:128M:autoextend \ --log-bin-trust-function-creators \ + --loose-binlog-show-xid=0 \ $MASTER_40_ARGS \ $SMALL_SERVER \ - $EXTRA_MASTER_OPT $EXTRA_MASTER_MYSQLD_OPT \ + $MASTER_MYSQLD_BINLOG_OPT \ + $EXTRA_MASTER_MYSQLD_OPT $EXTRA_MASTER_OPT \ $NOT_FIRST_MASTER_EXTRA_OPTS" fi @@ -1363,16 +1462,16 @@ start_master() if [ x$DO_DDD = x1 ] then - $ECHO "set args $master_args" > $GDB_MASTER_INIT + $ECHO "set args $master_args" > $GDB_MASTER_INIT$1 manager_launch master ddd -display $DISPLAY --debugger \ - "gdb -x $GDB_MASTER_INIT" $MASTER_MYSQLD + "gdb -x $GDB_MASTER_INIT$1" $MASTER_MYSQLD elif [ x$DO_GDB = x1 ] then if [ x$MANUAL_GDB = x1 ] then - $ECHO "set args $master_args" > $GDB_MASTER_INIT + $ECHO "set args $master_args" > $GDB_MASTER_INIT$1 $ECHO "To start gdb for the master , type in another window:" - $ECHO "cd $CWD ; gdb -x $GDB_MASTER_INIT $MASTER_MYSQLD" + $ECHO "cd $CWD ; gdb -x $GDB_MASTER_INIT$1 $MASTER_MYSQLD" wait_for_master=1500 else ( $ECHO set args $master_args; @@ -1384,9 +1483,9 @@ disa 1 end r EOF - fi ) > $GDB_MASTER_INIT + fi ) > $GDB_MASTER_INIT$1 manager_launch master $XTERM -display $DISPLAY \ - -title "Master" -e gdb -x $GDB_MASTER_INIT $MASTER_MYSQLD + -title "Master" -e gdb -x $GDB_MASTER_INIT$1 $MASTER_MYSQLD fi else manager_launch master $MASTER_MYSQLD $master_args @@ -1401,6 +1500,7 @@ start_slave() [ x$SKIP_SLAVE = x1 ] && return eval "this_slave_running=\$SLAVE$1_RUNNING" [ x$this_slave_running = 1 ] && return + # When testing fail-safe replication, we will have more than one slave # in this case, we start secondary slaves with an argument slave_ident="slave$1" @@ -1424,6 +1524,38 @@ start_slave() slave_pid=$SLAVE_MYPID slave_sock="$SLAVE_MYSOCK" fi + + # + if [ x$USING_NDBCLUSTER = x1 -a -n "$USE_NDBCLUSTER_SLAVE" ] ; then + if [ $slave_server_id -eq 2 ] ; then + savedir=`pwd` + cd $MYSQL_TEST_DIR + if [ "$DO_BENCH" != 1 -a -z "$NDBCLUSTER_EXTRA_OPTS" ] + then + NDBCLUSTER_EXTRA_OPTS="--small" + fi + + OPTS="$NDBCLUSTER_OPTS_SLAVE --initial $NDBCLUSTER_EXTRA_OPTS --ndbd-nodes=1 --verbose=$NDB_VERBOSE --relative-config-data-dir --core" + if [ "x$NDB_VERBOSE" != "x0" ] ; then + echo "Starting slave ndbcluster " $OPTS + fi + ./ndb/ndbcluster $OPTS \ + || NDB_SLAVE_STATUS_OK=0 + # > /dev/null 2>&1 || NDB_SLAVE_STATUS_OK=0 + cd $savedir + if [ x$NDB_SLAVE_STATUS_OK != x1 ] ; then + if [ x$FORCE != x1 ] ; then + exit 1 + fi + USE_NDBCLUSTER_SLAVE_OPT= + USE_NDBCLUSTER_SLAVE= + fi + USE_NDBCLUSTER_SLAVE_OPT=$USE_NDBCLUSTER_SLAVE + fi + else + USE_NDBCLUSTER_SLAVE_OPT= + fi + # Remove stale binary logs and old master.info files # except for too tests which need them if [ "$tname" != "rpl_crash_binlog_ib_1b" ] && [ "$tname" != "rpl_crash_binlog_ib_2b" ] && [ "$tname" != "rpl_crash_binlog_ib_3b" ] @@ -1449,12 +1581,16 @@ start_slave() master_info=$SLAVE_MASTER_INFO fi + if [ x$SLAVE_MYSQLDBINLOG = x1 ] + then + SLAVE_MYSQLD_BINLOG_OPT="--log-bin=$MYSQL_TEST_DIR/var/log/$slave_ident-bin --log-slave-updates" + fi + $RM -f $slave_datadir/log.* slave_args="--no-defaults $master_info \ --exit-info=256 \ - --log-bin=$MYSQL_TEST_DIR/var/log/$slave_ident-bin \ + $SLAVE_MYSQLDBINLOG_OPT \ --relay-log=$MYSQL_TEST_DIR/var/log/$slave_ident-relay-bin \ - --log-slave-updates \ --log=$slave_log \ --basedir=$MY_BASEDIR \ --datadir=$slave_datadir \ @@ -1474,8 +1610,11 @@ start_slave() --master-retry-count=10 \ -O slave_net_timeout=10 \ --log-bin-trust-function-creators \ + --loose-binlog-show-xid=0 \ $SMALL_SERVER \ - $EXTRA_SLAVE_OPT $EXTRA_SLAVE_MYSQLD_OPT" + $SLAVE_MYSQLD_BINLOG_OPT \ + $EXTRA_SLAVE_MYSQLD_OPT $EXTRA_SLAVE_OPT \ + $USE_NDBCLUSTER_SLAVE_OPT" CUR_MYERR=$slave_err CUR_MYSOCK=$slave_sock @@ -1523,7 +1662,6 @@ mysql_start () # start_master # start_slave cd $MYSQL_TEST_DIR - start_ndbcluster return 1 } @@ -1557,6 +1695,14 @@ stop_slave () sleep $SLEEP_TIME_AFTER_RESTART fi eval "SLAVE$1_RUNNING=0" + if [ -n "$USE_NDBCLUSTER_SLAVE_OPT" ] ; then + savedir=`pwd` + cd $MYSQL_TEST_DIR + $ECHO "Stopping slave cluster" + ./ndb/ndbcluster $NDBCLUSTER_OPTS_SLAVE --stop + rm_ndbcluster_tables $SLAVE_MYDDIR + cd $savedir + fi fi } @@ -1645,6 +1791,14 @@ run_testcase () result_file="r/$tname.result" echo $tname > $CURRENT_TEST SKIP_SLAVE=`$EXPR \( $tname : rpl \) = 0 \& \( $tname : federated \) = 0` + NDBCLUSTER_TEST=`$EXPR \( $tname : '.*ndb.*' \) != 0` + if [ "x$USE_NDBCLUSTER_ALL" = "x1" ] ; then + NDBCLUSTER_TEST=1 + fi + if [ "x$USE_NDBCLUSTER_ONLY" = "x1" -a "x$NDBCLUSTER_TEST" != "x1" ] ; then + skip_test $tname + return + fi if [ "$USE_MANAGER" = 1 ] ; then many_slaves=`$EXPR \( \( $tname : rpl_failsafe \) != 0 \) \| \( \( $tname : rpl_chain_temp_table \) != 0 \)` fi @@ -1734,9 +1888,20 @@ run_testcase () esac stop_master stop_master 1 + + # only stop the cluster if this test will not use cluster + if [ x$NDBCLUSTER_TEST != x1 ] ; + then + stop_ndbcluster + fi + report_current_test $tname + USING_NDBCLUSTER=$NDBCLUSTER_TEST + # start_ndbcluster knows if cluster is already started + start_ndbcluster start_master - if [ -n "$USE_NDBCLUSTER" -a -z "$DO_BENCH" -a -z "$DO_STRESS" ] ; then + if [ x$USING_NDBCLUSTER = x1 -a -z "$DO_BENCH" -a -z "$DO_STRESS" ] ; then + echo "CURRENT_TEST: $tname" >> $MASTER_MYERR"1" start_master 1 fi TZ=$MY_TZ; export TZ @@ -1745,14 +1910,26 @@ run_testcase () # or there is no master running (FIXME strange.....) # or there is a master init script if [ ! -z "$EXTRA_MASTER_OPT" ] || [ x$MASTER_RUNNING != x1 ] || \ - [ -f $master_init_script ] + [ -f $master_init_script ] || \ + [ -n "$USE_NDBCLUSTER" -a x$NDBCLUSTER_TEST != x$USING_NDBCLUSTER ] then EXTRA_MASTER_OPT="" stop_master stop_master 1 + + # only stop the cluster if this test will not use cluster + if [ x$NDBCLUSTER_TEST != x1 ] ; + then + stop_ndbcluster + fi + report_current_test $tname + USING_NDBCLUSTER=$NDBCLUSTER_TEST + # start_ndbcluster knows if cluster is already started + start_ndbcluster start_master - if [ -n "$USE_NDBCLUSTER" -a -z "$DO_BENCH" -a -z "$DO_STRESS" ] ; then + if [ x$USING_NDBCLUSTER = x1 -a -z "$DO_BENCH" -a -z "$DO_STRESS" ] ; then + echo "CURRENT_TEST: $tname" >> $MASTER_MYERR"1" start_master 1 fi else @@ -1786,6 +1963,18 @@ run_testcase () fi fi + USING_NDBCLUSTER=$NDBCLUSTER_TEST + if [ -n "$USE_NDBCLUSTER_SLAVE_OPT" ] ; then + if [ x$USING_NDBCLUSTER != x1 ] ; then + do_slave_restart=1 + fi + else + if [ x$USING_NDBCLUSTER = x1 ] ; then + do_slave_restart=1 + fi + fi + + if [ x$do_slave_restart = x1 ] ; then stop_slave echo "CURRENT_TEST: $tname" >> $SLAVE_MYERR @@ -2021,10 +2210,10 @@ then $MYSQLADMIN --no-defaults --socket=$MASTER_MYSOCK -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1 $MYSQLADMIN --no-defaults --socket=$MASTER_MYSOCK1 -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1 $MYSQLADMIN --no-defaults --socket=$SLAVE_MYSOCK -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1 - $MYSQLADMIN --no-defaults --host=$hostname --port=$MASTER_MYPORT -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1 - $MYSQLADMIN --no-defaults --host=$hostname --port=`expr $MASTER_MYPORT+1` -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1 - $MYSQLADMIN --no-defaults --host=$hostname --port=$SLAVE_MYPORT -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1 - $MYSQLADMIN --no-defaults --host=$hostname --port=`expr $SLAVE_MYPORT + 1` -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1 + $MYSQLADMIN --no-defaults --host=$hostname --port=$MASTER_MYPORT --protocol=tcp -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1 + $MYSQLADMIN --no-defaults --host=$hostname --protocol=tcp --port=`expr $MASTER_MYPORT+1` -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1 + $MYSQLADMIN --no-defaults --host=$hostname --protocol=tcp --port=$SLAVE_MYPORT -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1 + $MYSQLADMIN --no-defaults --host=$hostname --protocol=tcp --port=`expr $SLAVE_MYPORT + 1` -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1 sleep_until_file_deleted 0 $MASTER_MYPID sleep_until_file_deleted 0 $MASTER_MYPID"1" sleep_until_file_deleted 0 $SLAVE_MYPID @@ -2044,6 +2233,8 @@ then fi fi + # just to force stopping anything from previous runs + USE_NDBCLUSTER_OPT=$USE_NDBCLUSTER stop_ndbcluster # Remove files that can cause problems @@ -2061,7 +2252,8 @@ then if [ -n "$1" -a `expr "X$*" : '.*ndb'` -eq 0 ] then - USE_NDBCLUSTER="" + USING_NDBCLUSTER=0 + USE_NDBCLUSTER_OPT= fi start_manager @@ -2093,7 +2285,7 @@ then EXTRA_BENCH_ARGS="--small-test --small-tables" fi - if [ ! -z "$USE_NDBCLUSTER" ] + if [ x$USING_NDBCLUSTER = x1 ] then EXTRA_BENCH_ARGS="--create-options=TYPE=ndb $EXTRA_BENCH_ARGS" fi |