94 lines
3.1 KiB
Plaintext
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;
|