polardbxengine/mysql-test/suite/xcluster/t/event_scheduler.test

94 lines
3.1 KiB
Plaintext

#
# Automatically turn on event_scheduler when leader is changed
#
--connection default
# make sure this feature is still ok after any restart.
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
show global variables like "event_scheduler";
--connect (conn2,127.0.0.1,root,,test,$MYPORT_2)
# make sure this feature is still ok after any restart.
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
--shutdown_server
--source include/wait_until_disconnected.inc
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
--enable_reconnect
--source include/wait_until_connected_again_old.inc
show global variables like "event_scheduler";
--connection default
create table t (id int primary key auto_increment , data int);
insert into t (data) values (1);
select data from t where id = 1;
CREATE EVENT sectest ON SCHEDULE EVERY 1 second DO update t set data=data+1 where id=1;
--let $value_old= query_get_value(select data from t where id = 1, data, 1)
sleep 1;
--let $value_new= query_get_value(select data from t where id = 1, data, 1)
if ($value_old == $value_new)
{
--echo # event is not running
}
#change consensus_leader to 2;
let $MYPORT_CONSENSUS_1 = query_get_value("select $MYPORT_1+40 as c1", c1, 1);
let $MYPORT_CONSENSUS_2 = query_get_value("select $MYPORT_2+40 as c1", c1, 1);
--replace_result $MYPORT_CONSENSUS_2 MYPORT_CONSENSUS_2
eval call dbms_consensus.change_leader("127.0.0.1:$MYPORT_CONSENSUS_2");
--connection conn2
let $wait_condition= select role='leader' and server_ready_for_rw='Yes' from information_schema.alisql_cluster_local;
--source include/wait_condition.inc
show global variables like "event_scheduler";
--connection default
--enable_reconnect
show global variables like "event_scheduler";
--connection conn2
--let $value_old= query_get_value(select data from t where id = 1, data, 1)
sleep 1;
--let $value_new= query_get_value(select data from t where id = 1, data, 1)
if ($value_old == $value_new)
{
--echo # event is not running
}
#change consensus_leader to 1;
--replace_result $MYPORT_CONSENSUS_1 MYPORT_CONSENSUS_1
eval call dbms_consensus.change_leader("127.0.0.1:$MYPORT_CONSENSUS_1");
--connection default
let $wait_condition= select role='leader' and server_ready_for_rw='Yes' from information_schema.alisql_cluster_local;
--source include/wait_condition.inc
show global variables like "event_scheduler";
--connection conn2
show global variables like "event_scheduler";
--connection default
--let $value_old= query_get_value(select data from t where id = 1, data, 1)
sleep 1;
--let $value_new= query_get_value(select data from t where id = 1, data, 1)
if ($value_old == $value_new)
{
--echo # event is not running
}
drop event sectest;
--let $value_old= query_get_value(select data from t where id = 1, data, 1)
sleep 1;
--let $value_new= query_get_value(select data from t where id = 1, data, 1)
if ($value_old != $value_new)
{
--echo # event is not stopped
}
drop table t;