summaryrefslogtreecommitdiff
path: root/mysql-test/mysql-test-run.sh
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/mysql-test-run.sh')
-rw-r--r--mysql-test/mysql-test-run.sh286
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