diff options
author | unknown <serg@serg.mysql.com> | 2001-10-12 17:47:13 +0200 |
---|---|---|
committer | unknown <serg@serg.mysql.com> | 2001-10-12 17:47:13 +0200 |
commit | 6db2120514c3e7442f69c99be017b2baa03bb09a (patch) | |
tree | 224ae04fa4b6a74f056f956de4f2ebb6423c1838 /mysql-test | |
parent | 239e8da92637685a4112c99cb198e02f4d10fdc8 (diff) | |
parent | be31ffa2e46cac314694452b51935ec841b8f06e (diff) | |
download | mariadb-git-6db2120514c3e7442f69c99be017b2baa03bb09a.tar.gz |
Merge work:/home/bk/mysql-4.0
into serg.mysql.com:/usr/home/serg/Abk/mysql-4.0
BitKeeper/etc/ignore:
auto-union
mysql-test/r/fulltext.result:
Auto merged
mysql-test/r/join.result:
Auto merged
mysql-test/r/fulltext_order_by.result:
Auto merged
mysql-test/r/fulltext_multi.result:
Auto merged
mysql-test/r/fulltext_cache.result:
Auto merged
mysql-test/t/fulltext.test:
Auto merged
mysql-test/t/join.test:
Auto merged
mysql-test/r/fulltext_left_join.result:
Auto merged
sql/handler.h:
Auto merged
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/mysql-test-run.sh | 140 | ||||
-rw-r--r-- | mysql-test/r/innodb.result | 6 | ||||
-rw-r--r-- | mysql-test/r/rpl_failsafe.result | 22 | ||||
-rw-r--r-- | mysql-test/t/rpl000018.test | 1 | ||||
-rw-r--r-- | mysql-test/t/rpl_failsafe.test | 19 |
5 files changed, 153 insertions, 35 deletions
diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh index 7ee629e826e..a7cbacc0aa8 100644 --- a/mysql-test/mysql-test-run.sh +++ b/mysql-test/mysql-test-run.sh @@ -12,6 +12,7 @@ DB=test DBPASSWD= VERBOSE="" +USE_MANAGER=0 TZ=GMT-3; export TZ # for UNIX_TIMESTAMP tests to work #++ @@ -124,7 +125,7 @@ MASTER_RUNNING=0 MASTER_MYPORT=9306 SLAVE_RUNNING=0 SLAVE_MYPORT=9307 -MYSQL_MANAGER_PORT=9308 +MYSQL_MANAGER_PORT=9305 # needs to be out of the way of slaves 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 @@ -162,6 +163,8 @@ while test $# -gt 0; do --ssl-ca=$BASEDIR/SSL/cacert.pem \ --ssl-cert=$BASEDIR/SSL/server-cert.pem \ --ssl-key=$BASEDIR/SSL/server-key.pem" ;; + --no-manager | --skip-manager) USE_MANAGER=0 ;; + --manager) USE_MANAGER=1 ;; --skip-innobase) EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --skip-innobase" EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --skip-innobase" ;; @@ -473,6 +476,14 @@ mysql_install_db () { error "Could not install slave test DBs" exit 1 fi + + for slave_num in 1 2 ; + do + rm -rf var/slave$slave_num-data/ + mkdir -p var/slave$slave_num-data/mysql + mkdir -p var/slave$slave_num-data/test + cp var/slave-data/mysql/* var/slave$slave_num-data/mysql + done # Give mysqld some time to die. sleep $SLEEP_TIME return 0 @@ -526,12 +537,19 @@ abort_if_failed() start_manager() { + if [ $USE_MANAGER = 0 ] ; then + echo "Manager disabled, skipping manager start. Tests requiring manager will\ + be skipped" + return + fi + $ECHO "Starting MySQL Manager" MYSQL_MANAGER_PW=`$MYSQL_MANAGER_PWGEN -u $MYSQL_MANAGER_USER \ -o $MYSQL_MANAGER_PW_FILE` $MYSQL_MANAGER --log=$MYSQL_MANAGER_LOG --port=$MYSQL_MANAGER_PORT \ --password-file=$MYSQL_MANAGER_PW_FILE abort_if_failed "Could not start MySQL manager" - mysqltest_manager_args="--manager-user=$MYSQL_MANAGER_USER \ + mysqltest_manager_args="--manager-host=localhost \ + --manager-user=$MYSQL_MANAGER_USER \ --manager-password=$MYSQL_MANAGER_PW \ --manager-port=$MYSQL_MANAGER_PORT \ --manager-wait-timeout=$START_WAIT_TIMEOUT" @@ -542,6 +560,9 @@ start_manager() stop_manager() { + if [ $USE_MANAGER = 0 ] ; then + return + fi $MYSQL_MANAGER_CLIENT $MANAGER_QUIET_OPT -u$MYSQL_MANAGER_USER \ -p$MYSQL_MANAGER_PW -P $MYSQL_MANAGER_PORT <<EOF shutdown @@ -552,6 +573,11 @@ manager_launch() { ident=$1 shift + if [ $USE_MANAGER = 0 ] ; then + $@ >$CUR_MYERR 2>&1 & + sleep 2 #hack + return + fi $MYSQL_MANAGER_CLIENT $MANAGER_QUIET_OPT --user=$MYSQL_MANAGER_USER \ --password=$MYSQL_MANAGER_PW --port=$MYSQL_MANAGER_PORT <<EOF def_exec $ident $@ @@ -567,6 +593,11 @@ manager_term() { ident=$1 shift + if [ $USE_MANAGER = 0 ] ; then + $MYSQLADMIN --no-defaults -uroot --socket=$MYSQL_TMP_DIR/$ident.sock -O \ + connect_timeout=5 shutdown >/dev/null 2>&1 + return + fi $MYSQL_MANAGER_CLIENT $MANAGER_QUIET_OPT --user=$MYSQL_MANAGER_USER \ --password=$MYSQL_MANAGER_PW --port=$MYSQL_MANAGER_PORT <<EOF stop_exec $ident $STOP_WAIT_TIMEOUT @@ -593,7 +624,7 @@ start_master() then master_args="--no-defaults --log-bin=$MYSQL_TEST_DIR/var/log/master-bin \ --server-id=1 --rpl-recovery-rank=1 \ - --basedir=$MY_BASEDIR \ + --basedir=$MY_BASEDIR --init-rpl-role=master \ --port=$MASTER_MYPORT \ --exit-info=256 \ --datadir=$MASTER_MYDDIR \ @@ -610,7 +641,7 @@ start_master() else master_args="--no-defaults --log-bin=$MYSQL_TEST_DIR/var/log/master-bin \ --server-id=1 --rpl-recovery-rank=1 \ - --basedir=$MY_BASEDIR \ + --basedir=$MY_BASEDIR --init-rpl-role=master \ --port=$MASTER_MYPORT \ --datadir=$MASTER_MYDDIR \ --pid-file=$MASTER_MYPID \ @@ -647,10 +678,33 @@ start_master() start_slave() { [ x$SKIP_SLAVE = x1 ] && return - [ x$SLAVE_RUNNING = 1 ] && 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" + if [ -n "$1" ] ; + then + slave_server_id=`$EXPR 2 + $1` + slave_rpl_rank=$slave_server_id + slave_port=`expr $SLAVE_MYPORT + $1` + slave_log="$SLAVE_MYLOG.$1" + slave_err="$SLAVE_MYERR.$1" + slave_datadir="var/$slave_ident-data/" + slave_pid="$MYRUN_DIR/mysqld-$slave_ident.pid" + slave_sock="$SLAVE_MYSOCK-$1" + else + slave_server_id=2 + slave_rpl_rank=2 + slave_port=$SLAVE_MYPORT + slave_log=$SLAVE_MYLOG + slave_err=$SLAVE_MYERR + slave_datadir=$SLAVE_MYDDIR + slave_pid=$SLAVE_MYPID + slave_sock="$SLAVE_MYSOCK" + fi # Remove stale binary logs - $RM -f $MYSQL_TEST_DIR/var/log/slave-bin.* + $RM -f $MYSQL_TEST_DIR/var/log/$slave_ident-bin.* #run slave initialization shell script if one exists if [ -f "$slave_init_script" ] ; @@ -664,51 +718,51 @@ start_slave() --master-host=127.0.0.1 \ --master-password= \ --master-port=$MASTER_MYPORT \ - --server-id=2 --rpl-recovery-rank=2" + --server-id=$slave_server_id --rpl-recovery-rank=$slave_rpl_rank" else master_info=$SLAVE_MASTER_INFO fi - $RM -f $SLAVE_MYDDIR/log.* + $RM -f $slave_datadir/log.* slave_args="--no-defaults $master_info \ --exit-info=256 \ - --log-bin=$MYSQL_TEST_DIR/var/log/slave-bin \ + --log-bin=$MYSQL_TEST_DIR/var/log/$slave_ident-bin \ --log-slave-updates \ - --log=$SLAVE_MYLOG \ + --log=$slave_log \ --basedir=$MY_BASEDIR \ - --datadir=$SLAVE_MYDDIR \ - --pid-file=$SLAVE_MYPID \ - --port=$SLAVE_MYPORT \ - --socket=$SLAVE_MYSOCK \ + --datadir=$slave_datadir \ + --pid-file=$slave_pid \ + --port=$slave_port \ + --socket=$slave_sock \ --character-sets-dir=$CHARSETSDIR \ --default-character-set=$CHARACTER_SET \ - --core \ + --core --init-rpl-role=slave \ --tmpdir=$MYSQL_TMP_DIR \ --language=$LANGUAGE \ --skip-innodb --skip-slave-start \ --slave-load-tmpdir=$SLAVE_LOAD_TMPDIR \ --report-host=127.0.0.1 --report-user=root \ - --report-port=$SLAVE_MYPORT \ + --report-port=$slave_port \ --master-retry-count=5 \ $SMALL_SERVER \ $EXTRA_SLAVE_OPT $EXTRA_SLAVE_MYSQLD_OPT" - CUR_MYERR=$SLAVE_MYERR - CUR_MYSOCK=$SLAVE_MYSOCK + CUR_MYERR=$slave_err + CUR_MYSOCK=$slave_sock if [ x$DO_DDD = x1 ] then $ECHO "set args $master_args" > $GDB_SLAVE_INIT - manager_launch slave ddd -display $DISPLAY --debugger \ + manager_launch $slave_ident ddd -display $DISPLAY --debugger \ "gdb -x $GDB_SLAVE_INIT" $SLAVE_MYSQLD elif [ x$DO_GDB = x1 ] then $ECHO "set args $slave_args" > $GDB_SLAVE_INIT - manager_launch slave $XTERM -display $DISPLAY -title "Slave" -e gdb -x \ + manager_launch $slave_ident $XTERM -display $DISPLAY -title "Slave" -e gdb -x \ $GDB_SLAVE_INIT $SLAVE_MYSQLD else - manager_launch slave $SLAVE_MYSQLD $slave_args + manager_launch $slave_ident $SLAVE_MYSQLD $slave_args fi - SLAVE_RUNNING=1 + eval "SLAVE$1_RUNNING=1" } mysql_start () { @@ -721,23 +775,31 @@ mysql_start () { stop_slave () { - if [ x$SLAVE_RUNNING = x1 ] + eval "this_slave_running=\$SLAVE$1_RUNNING" + slave_ident="slave$1" + if [ -n "$1" ] ; then - manager_term slave - if [ $? != 0 ] && [ -f $SLAVE_MYPID ] + slave_pid="$MYRUN_DIR/mysqld-$slave_ident.pid" + else + slave_pid=$SLAVE_MYPID + fi + if [ x$this_slave_running = x1 ] + then + manager_term $slave_ident + if [ $? != 0 ] && [ -f $slave_pid ] then # try harder! $ECHO "slave not cooperating with mysqladmin, will try manual kill" - kill `$CAT $SLAVE_MYPID` + kill `$CAT $slave_pid` sleep $SLEEP_TIME if [ -f $SLAVE_MYPID ] ; then $ECHO "slave refused to die. Sending SIGKILL" - kill -9 `$CAT $SLAVE_MYPID` - $RM -f $SLAVE_MYPID + kill -9 `$CAT $slave_pid` + $RM -f $slave_pid else $ECHO "slave responded to SIGTERM " fi fi - SLAVE_RUNNING=0 + eval "SLAVE$1_RUNNING=0" fi } @@ -771,6 +833,8 @@ mysql_stop () stop_master $ECHO "Master shutdown finished" stop_slave + stop_slave 1 + stop_slave 2 $ECHO "Slave shutdown finished" return 1 @@ -800,6 +864,10 @@ run_testcase () slave_init_script=$TESTDIR/$tname-slave.sh slave_master_info_file=$TESTDIR/$tname-slave-master-info.opt SKIP_SLAVE=`$EXPR \( $tname : rpl \) = 0` + if [ $USE_MANAGER = 1 ] ; then + many_slaves=`$EXPR \( $tname : rpl_failsafe \) != 0` + fi + if [ -n "$SKIP_TEST" ] ; then SKIP_THIS_TEST=`$EXPR \( $tname : "$SKIP_TEST" \) != 0` if [ x$SKIP_THIS_TEST = x1 ] ; @@ -874,6 +942,10 @@ run_testcase () stop_slave start_slave fi + if [ x$many_slaves = x1 ]; then + start_slave 1 + start_slave 2 + fi fi cd $MYSQL_TEST_DIR @@ -906,7 +978,12 @@ run_testcase () timestr="$USERT $SYST $REALT" pname=`$ECHO "$tname "|$CUT -c 1-24` RES="$pname $timestr" - + + if [ x$many_slaves = x1 ] ; then + stop_slave 1 + stop_slave 2 + fi + if [ $res = 0 ]; then total_inc pass_inc @@ -963,7 +1040,6 @@ then $MYSQLADMIN --no-defaults --socket=$SLAVE_MYSOCK -u root -O connect_timeout=5 shutdown > /dev/null 2>&1 $ECHO "Installing Test Databases" mysql_install_db - $ECHO "Starting MySQL Manager" start_manager #do not automagically start deamons if we are in gdb or running only one test #case diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result index 596edb84705..20874981840 100644 --- a/mysql-test/r/innodb.result +++ b/mysql-test/r/innodb.result @@ -169,8 +169,8 @@ test.t1 optimize error The handler for the table doesn't support check/repair show keys from t1; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Comment t1 0 PRIMARY 1 id A 2 NULL NULL -t1 1 parent_id 1 parent_id A 4 NULL NULL -t1 1 level 1 level A 4 NULL NULL +t1 1 parent_id 1 parent_id A 2 NULL NULL +t1 1 level 1 level A 2 NULL NULL drop table t1; CREATE TABLE t1 ( gesuchnr int(11) DEFAULT '0' NOT NULL, @@ -211,7 +211,7 @@ Table Op Msg_type Msg_text test.t1 analyze error The handler for the table doesn't support check/repair show keys from t1; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Comment -t1 1 skr 1 a A 3 NULL NULL +t1 1 skr 1 a A 1 NULL NULL drop table t1; create table t1 (a int,b varchar(20),key(a)) type=innodb; insert into t1 values (1,""), (2,"testing"); diff --git a/mysql-test/r/rpl_failsafe.result b/mysql-test/r/rpl_failsafe.result index 789795c0343..14b749fada9 100644 --- a/mysql-test/r/rpl_failsafe.result +++ b/mysql-test/r/rpl_failsafe.result @@ -6,6 +6,28 @@ slave start; show variables like 'rpl_recovery_rank'; Variable_name Value rpl_recovery_rank 1 +show status like 'Rpl_status'; +Variable_name Value +Rpl_status AUTH_MASTER +create table t1(n int); +drop table t1; show variables like 'rpl_recovery_rank'; Variable_name Value rpl_recovery_rank 2 +show status like 'Rpl_status'; +Variable_name Value +Rpl_status ACTIVE_SLAVE +slave start; +show variables like 'rpl_recovery_rank'; +Variable_name Value +rpl_recovery_rank 3 +show status like 'Rpl_status'; +Variable_name Value +Rpl_status ACTIVE_SLAVE +slave start; +show variables like 'rpl_recovery_rank'; +Variable_name Value +rpl_recovery_rank 4 +show status like 'Rpl_status'; +Variable_name Value +Rpl_status ACTIVE_SLAVE diff --git a/mysql-test/t/rpl000018.test b/mysql-test/t/rpl000018.test index 621147b7c3e..30d601bb375 100644 --- a/mysql-test/t/rpl000018.test +++ b/mysql-test/t/rpl000018.test @@ -1,3 +1,4 @@ +require_manager; connect (master,localhost,root,,test,0,master.sock); connect (slave,localhost,root,,test,0,slave.sock); server_stop master; diff --git a/mysql-test/t/rpl_failsafe.test b/mysql-test/t/rpl_failsafe.test index b8ef5b3f365..866efbce5bf 100644 --- a/mysql-test/t/rpl_failsafe.test +++ b/mysql-test/t/rpl_failsafe.test @@ -1,5 +1,24 @@ +require_manager; source include/master-slave.inc; +connect (slave_sec,localhost,root,,test,0,slave.sock-1); +connect (slave_ter,localhost,root,,test,0,slave.sock-2); connection master; show variables like 'rpl_recovery_rank'; +show status like 'Rpl_status'; +create table t1(n int); +drop table t1; +save_master_pos; connection slave; +sync_with_master; show variables like 'rpl_recovery_rank'; +show status like 'Rpl_status'; +connection slave_sec; +slave start; +sync_with_master; +show variables like 'rpl_recovery_rank'; +show status like 'Rpl_status'; +connection slave_ter; +slave start; +sync_with_master; +show variables like 'rpl_recovery_rank'; +show status like 'Rpl_status'; |