mariadb/mysql-test/t/rpl000001.test
unknown 457172d992 Fixed timing problem with rpl000001 replication test.
Fixed configure problems with HPUX and openbsd
SHOW SLAVE STATUS returns empty set if slave is not initialized
SHOW MASTER STATUS returns empty set if binary logging is not enabled.
Fixed shutdown problem on Solaris.


BitKeeper/deleted/.del-set_var.cc~5374527de1955359:
  Delete: libmysqld/set_var.cc
BitKeeper/etc/ignore:
  added libmysqld/set_var.cc
Build-tools/Do-compile:
  Remove warnings from touch during compilation
Docs/manual.texi:
  Changelog
client/mysqltest.c:
  Added real_sleep command
configure.in:
  Fixed type for HPUX10
innobase/configure.in:
  Fixed type for openbsd
libmysql/libmysql.c:
  Fix for new SHOW SLAVE STATUS
myisam/mi_update.c:
  Update key file if using external locking
mysql-test/mysql-test-run.sh:
  Safety fix
mysql-test/r/rpl000015.result:
  Update for new SHOW SLAVE STATUS
mysql-test/r/rpl_empty_master_crash.result:
  Update for new SHOW SLAVE STATUS
mysql-test/t/rpl000001.test:
  sleep -> real_sleep to avoid timing problem
sql/mysqld.cc:
  Fixed bug with SIGTERM on Solaris
sql/slave.cc:
  SHOW SLAVE STATUS returns empty sets if slave is not initialized.
sql/sql_repl.cc:
  SHOW MASTER STAT returns empty set if no binary logging.
2002-08-18 16:04:26 +03:00

123 lines
3.1 KiB
Text

source include/master-slave.inc;
drop table if exists t1,t2,t3;
create table t1 (word char(20) not null);
load data infile '../../std_data/words.dat' into table t1;
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
eval load data local infile '$MYSQL_TEST_DIR/std_data/words.dat' into table t1;
select * from t1;
#
# Test slave with wrong password
#
save_master_pos;
connection slave;
sync_with_master;
slave stop;
connection master;
set password for root@"localhost" = password('foo');
connection slave;
slave start;
connection master;
#
# Give slave time to do at last one failed connect retry
# This one must be short so that the slave will not stop retrying
real_sleep 2;
set password for root@"localhost" = password('');
# Give slave time to connect (will retry every second)
sleep 2;
create table t3(n int);
insert into t3 values(1),(2);
save_master_pos;
connection slave;
sync_with_master;
select * from t3;
select sum(length(word)) from t1;
connection master;
drop table t1,t3;
save_master_pos;
connection slave;
sync_with_master;
#test handling of aborted connection in the middle of update
connection master;
reset master;
connection slave;
slave stop;
reset slave;
connection master;
create table t1(n int);
#we want the log to exceed 16K to test deal with the log that is bigger than
#IO_SIZE
let $1=5000;
disable_query_log;
while ($1)
{
eval insert into t1 values($1+get_lock("hold_slave",10)*0);
dec $1;
}
enable_query_log;
# Try to cause a large relay log lag on the slave
connection slave;
select get_lock("hold_slave",10);
slave start;
#hope this is long enough for I/O thread to fetch over 16K relay log data
sleep 3;
select release_lock("hold_slave");
unlock tables;
connection master;
create table t2(id int);
insert into t2 values(connection_id());
save_master_pos;
connection master1;
# Avoid generating result
create temporary table t3(n int);
insert into t3 select get_lock('crash_lock%20C', 1) from t2;
connection master;
send update t1 set n = n + get_lock('crash_lock%20C', 2);
connection master1;
sleep 3;
select (@id := id) - id from t2;
kill @id;
# We don't drop t3 as this is a temporary table
drop table t2;
connection master;
--error 1053;
reap;
connection slave;
sync_with_master;
#give the slave a chance to exit
wait_for_slave_to_stop;
# The following test can't be done because the result of Pos will differ
# on different computers
# --replace_result 9306 9999 3334 9999 3335 9999
# show slave status;
set global sql_slave_skip_counter=1;
slave start;
select count(*) from t1;
connection master1;
drop table t1;
create table t1 (n int);
insert into t1 values(3456);
insert into mysql.user (Host, User, Password)
VALUES ("10.10.10.%", "blafasel2", password("blafasel2"));
select select_priv,user from mysql.user where user = 'blafasel2';
update mysql.user set Select_priv = "Y" where User="blafasel2";
select select_priv,user from mysql.user where user = 'blafasel2';
save_master_pos;
connection slave;
sync_with_master;
select n from t1;
select select_priv,user from mysql.user where user = 'blafasel2';
connection master1;
drop table t1;
save_master_pos;
connection slave;
sync_with_master;