config root man

Current Path : /home/usr.opt/mysql57/mysql-test/suite/rpl/t/

FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64
Upload File :
Current File : //home/usr.opt/mysql57/mysql-test/suite/rpl/t/rpl_multi_source_perfschema.test

#
# WL#1697: Multi source Replication
#
# This test verifies that the replication performance schema tables work fine
# with multi-source replication.
# General idea of the test:
# 1) test the count of the rows in all the tables are fine.
# 2) count decreases or increases with channels
# 3) Joins could be made without error
#
# Note: we do not test exclusively the correctness of each field of all
# channels. The tests to test the correctness of individual channel (i.e default)
# are present in rpl_perfschema_* tests.

#Skip on group replication runs
--source include/not_group_replication_plugin.inc
--source include/have_binlog_format_mixed.inc
--echo #
--echo # Set up masters server_1 and server_3 with server_2 being a slave.
--echo #
--let $rpl_topology= 1->2,3->2
--let $rpl_multi_source= 1
--source include/rpl_init.inc

--echo #
--echo # Test case 1: Create multiple sources and make sure that
--echo # number of sources= number of rows in all the performance schema tables.
--echo # On master, where replication is not setup, it shall show 0 rows.
--let $rpl_connection_name= server_1
--source include/rpl_connection.inc

--let $num= `select count(*) from performance_schema.replication_connection_configuration`
--let $assert_text= Number of rows = 0 on master for repliation_connection_configuration table.
--let $assert_cond= $num = 0;
--source include/assert.inc

--let $num= `select count(*) from performance_schema.replication_connection_status`
--let $assert_text= Number of rows = 0 on master for repliation_connection_status table.
--let $assert_cond= $num= 0;
--source include/assert.inc

--let $num= `select count(*) from performance_schema.replication_applier_configuration`
--let $assert_text= Number of rows = 0 on master for repliation_applier_configuration table.
--let $assert_cond= $num = 0;
--source include/assert.inc

--let $num= `select count(*) from performance_schema.replication_applier_status`
--let $assert_text= Number of rows = 0 on master for repliation_applier_status table.
--let $assert_cond= $num = 0;
--source include/assert.inc

--let $num= `select count(*) from performance_schema.replication_applier_status_by_coordinator`
--let $assert_text= Number of rows = 0 on master for replication_applier_status_by coordinator table.
--let $assert_cond= $num = 0;
--source include/assert.inc

--let $num= `select count(*) from performance_schema.replication_applier_status_by_worker`
--let $assert_text= Number of rows = 0 on master for replication_applier_status_by_worker table.
--let $assert_cond= "$num" = 0;
--source include/assert.inc

--echo #
--echo # Test case 2: On the slave,  number of rows should be zero for a non existent channel
--echo #
--let $rpl_connection_name= server_2
--source include/rpl_connection.inc

--let $num= `select count(*) from performance_schema.replication_connection_configuration where channel_name="non_existent"`
--let $assert_text= Number of rows= 0 on slave for a non existent channel for repliation_connection_configuration table.
--let $assert_cond= $num = 0;
--source include/assert.inc

--let $num= `select count(*) from performance_schema.replication_connection_status where channel_name="non_existent"`
--let $assert_text= Number of rows= 0 on slave for a non existent channel for repliation_connection_status table.
--let $assert_cond= $num = 0;
--source include/assert.inc

--let $num= `select count(*) from performance_schema.replication_applier_configuration where channel_name="non_existent"`
--let $assert_text= Number of rows= 0 on slave for a non existent channel for repliation_applier_configuration table.
--let $assert_cond= $num= 0;
--source include/assert.inc

--let $num= `select count(*) from performance_schema.replication_applier_status where channel_name="non_existent"`
--let $assert_text= Number of rows= 0 on slave for a non existent channel for repliation_applier_status table.
--let $assert_cond= $num = 0;
--source include/assert.inc

--let $num= `select count(*) from performance_schema.replication_applier_status_by_coordinator where channel_name="non_existent"`
--let $assert_text= Number of rows= 0 on slave for a non existent channel for repliation_applier_status_by_coordinaotor table.
--let $assert_cond= $num= 0;
--source include/assert.inc

--let $num= `select count(*) from performance_schema.replication_applier_status_by_worker where channel_name="non_existent"`
--let $assert_text= Number of rows= 0 on slave for a non existent channel for replication_applier_status_by_worker table.
--let $assert_cond= "$num"= 0;
--source include/assert.inc

--echo #
--echo #  Test case 3: Rows on multi sourced slave, shall be 2. In workers table it should be
--echo #               2*@@global.slave_parallel_workers
USE performance_schema;

--let $assert_text= there shall be 2 rows for replication_connection_configuration
--let $assert_cond= [select count(*) from performance_schema.replication_connection_configuration] = 2;
--source include/assert.inc

--let $assert_text= there shall be 2 rows for replication_connection_status
--let $assert_cond= [select count(*) from performance_schema.replication_connection_status] = 2;
--source include/assert.inc

--let $assert_text= there shall be 2 rows for replication_applier_configuration
--let $assert_cond= [select count(*) from performance_schema.replication_applier_configuration] = 2 ;
--source include/assert.inc

--let $assert_text= there shall be 2 rows for replication_applier_status
--let $assert_cond= [select count(*) from performance_schema.replication_applier_status] = 2;
--source include/assert.inc

# Post Bug#20001173 fix in case of Single Threaded Slave(STS) mode SQL
# thread's status will be reported as part of
# performance_schema.replication_applier_status_by_worker table.
--let $w_rows= `select @@global.slave_parallel_workers`
if ($w_rows != 0)
{
  --let $assert_text= there shall be 2 rows for replication_connection_configuration
  --let $assert_cond= [select count(*) from performance_schema.replication_applier_status_by_coordinator] = 2;
  --source include/assert.inc
}

if ($w_rows == 0)
{
  --let $assert_text= there shall be 2 rows for replication_connection_configuration
  --let $assert_cond= [select count(*) from performance_schema.replication_applier_status_by_worker] = 2;
  --source include/assert.inc
}

# Post Bug#20001173 fix in case of Single Threaded Slave(STS) mode SQL
# thread's status will be reported as part of
# performance_schema.replication_applier_status_by_worker table.
# SQL thread will have the corresponding worker_id as 0.
--let $pfs_w_rows= `select count(*) from performance_schema.replication_applier_status_by_worker where worker_id != 0`
--let $w_rows= `select 2*@@global.slave_parallel_workers`
--let $assert_text= there shall be 2*global.slave_parallel_workers rows for 2 configured channels.
--let $assert_cond= "$pfs_w_rows" = "$w_rows"
--source include/assert.inc


--echo #
--echo # Test case 4: Verify that selects work on named channels
--echo #              Do this verification by comparing with some known data
--echo #
#check that port value returned by channel_3 is same as SERVER_MYPORT_3
--let $channel_3_port= `select port from performance_schema.replication_connection_configuration where channel_name="channel_3"`
--let $assert_text= pfs query shall return the correct query value of the channel_3 port.
--let $assert_cond= "$channel_3_port"= "$SERVER_MYPORT_3"
--source include/assert.inc

--let $service_state= `select service_state from performance_schema.replication_connection_status where channel_name="channel_3"`
--let $assert_text= service state of receiver thread shall be ON.
--let $assert_cond= "ON" = "$service_state"
--source include/assert.inc

let $sss_value=query_get_value(SHOW SLAVE STATUS FOR CHANNEL 'channel_3', SQL_Delay, 1);
let $ps_value= query_get_value(select Desired_Delay from performance_schema.replication_applier_configuration where channel_name = "channel_3", Desired_Delay, 1);
let $assert_text= Value returned by SSS and PS table for Desired_Delay should be same.;
let $assert_cond= "$sss_value" = "$ps_value";
--source include/assert.inc

--let $service_state= `select service_state from performance_schema.replication_applier_status where channel_name="channel_3"`
--let $assert_text= service state shall be ON
--let $assert_cond= "ON" = "$service_state"
--source include/assert.inc

# Post Bug#20001173 fix in case of Single Threaded Slave(STS) mode SQL
# thread's status will be reported as part of
# performance_schema.replication_applier_status_by_worker table.
--let $service_state= `select service_state from performance_schema.replication_applier_status_by_worker where channel_name="channel_3"`
--let $assert_text= service state of coordinator shall be ON
--let $assert_cond= "ON" = "$service_state"
--source include/assert.inc

if ( `select @@GLOBAL.slave_parallel_workers > 0`)
{
  --let $service_state= `select service_state from performance_schema.replication_applier_status_by_worker where channel_name="channel_3" and worker_id= 1`
  --let $assert_text= service state of worker thread shall be ON
  --let $assert_cond= "ON" = "$service_state"
  --let $include_silent= 1
  --source include/assert.inc
  --let $include_silent= 0
}


--echo #
--echo #  Stop the slave on channel_1 and verify that rows are still instact
--echo #
--let $rpl_channel_name= channel_1
--source include/stop_slave.inc

--echo #
--echo # Test case 5: Verify that selects work on named channels even
--echo #              after a channel is stopped. test that service state is OFF
--echo #

--let $channel_1_port= `select port from performance_schema.replication_connection_configuration where channel_name="channel_1"`
--let $assert_text=  After stop slave for channel, replication_connection_configuration is intact
--let $assert_cond= "$channel_1_port"= "$SERVER_MYPORT_1"
--source include/assert.inc

--let $service_state= `select service_state from performance_schema.replication_connection_status where channel_name="channel_1"`
--let $assert_text=  After stop slave for channel, service state is OFF for connection_status table.
--let $assert_cond= "OFF" = "$service_state"
--source include/assert.inc

--let $service_state= `select service_state from performance_schema.replication_applier_status where channel_name="channel_1"`
--let $assert_text=  After stop slave for channel, service state is OFF for applier_status table.
--let $assert_cond= "OFF" = "$service_state"
--source include/assert.inc

# Post Bug#20001173 fix in case of Single Threaded Slave(STS) mode SQL
# thread's status will be reported as part of
# performance_schema.replication_applier_status_by_worker table.
--let $service_state= `select service_state from performance_schema.replication_applier_status_by_worker where channel_name="channel_1"`
--let $assert_text=  After stop slave for channel, service state is OFF by replication_applier_status_by_worker table.
--let $assert_cond= "OFF" = "$service_state"
--source include/assert.inc

if ( `select @@GLOBAL.slave_parallel_workers > 0`)
{
  --let $service_state= `select service_state from performance_schema.replication_applier_status_by_worker where channel_name="channel_1" and worker_id= 1`
  --let $assert_text= service state of worker thread shall be OFF
  --let $assert_cond= "OFF" = "$service_state"
  --let $include_silent= 1
  --source include/assert.inc
  --let $include_silent= 0
}


--echo #
--echo #  Test case 6): Do a sanity check that joins can be performed as replication tables
--echo #                 contain multiple rows now.
# Post Bug#20001173 fix in case of Single Threaded Slave(STS) mode SQL
# thread's status will be reported as part of
# performance_schema.replication_applier_status_by_worker table.
--let $w_rows= `select @@global.slave_parallel_workers`
if ($w_rows != 0)
{
  --disable_query_log
  --replace_column 3 # 4 # 6 # 7 # 13 #
  --query_vertical(select connection_status.CHANNEL_NAME, GROUP_NAME, SOURCE_UUID, connection_status.THREAD_ID, connection_status.SERVICE_STATE, COUNT_RECEIVED_HEARTBEATS, LAST_HEARTBEAT_TIMESTAMP, RECEIVED_TRANSACTION_SET, connection_status.LAST_ERROR_NUMBER, connection_status.LAST_ERROR_MESSAGE, connection_status.LAST_ERROR_TIMESTAMP, coordinator_status.CHANNEL_NAME, coordinator_status.THREAD_ID, coordinator_status.SERVICE_STATE, coordinator_status.LAST_ERROR_NUMBER, coordinator_status.LAST_ERROR_MESSAGE, coordinator_status.LAST_ERROR_TIMESTAMP from replication_connection_status connection_status, replication_applier_status_by_coordinator coordinator_status where connection_status.channel_name= coordinator_status.channel_name)
  --enable_query_log
}

if ($w_rows == 0)
{
  --disable_query_log
  --replace_column 3 # 4 # 6 # 7 # 13 #
  --query_vertical(select connection_status.CHANNEL_NAME, GROUP_NAME, SOURCE_UUID, connection_status.THREAD_ID, connection_status.SERVICE_STATE, COUNT_RECEIVED_HEARTBEATS, LAST_HEARTBEAT_TIMESTAMP, RECEIVED_TRANSACTION_SET, connection_status.LAST_ERROR_NUMBER, connection_status.LAST_ERROR_MESSAGE, connection_status.LAST_ERROR_TIMESTAMP, worker_status.CHANNEL_NAME, worker_status.THREAD_ID, worker_status.SERVICE_STATE, worker_status.LAST_ERROR_NUMBER, worker_status.LAST_ERROR_MESSAGE, worker_status.LAST_ERROR_TIMESTAMP from replication_connection_status connection_status, replication_applier_status_by_worker worker_status where connection_status.channel_name= worker_status.channel_name and worker_status.worker_id=0)
  --enable_query_log
}

--echo #
--echo # Test case 7: Delete channel_3 and count the number of rows in each table.
--echo #
--let $rpl_channel_name= channel_3
--source include/stop_slave.inc
RESET SLAVE ALL FOR CHANNEL 'channel_3';

--let $assert_text= there shall be 1 in replication connection_configuration table after a channel is deleted.
--let $assert_cond= [select count(*) from performance_schema.replication_connection_configuration] = 1;
--source include/assert.inc

--let $assert_text= there shall be 1 in replication connection_status table after a channel is deleted.
--let $assert_cond= [select count(*) from performance_schema.replication_connection_status] = 1;
--source include/assert.inc

--let $assert_text= there shall be 1 in replication applier_config table after a channel is deleted.
--let $assert_cond= [select count(*) from performance_schema.replication_applier_configuration] = 1 ;
--source include/assert.inc

--let $assert_text= there shall be 1 in replication applier_status table after a channel is deleted.
--let $assert_cond= [select count(*) from performance_schema.replication_applier_status] = 1;
--source include/assert.inc

# Post Bug#20001173 fix in case of Single Threaded Slave(STS) mode SQL
# thread's status will be reported as part of
# performance_schema.replication_applier_status_by_worker table.
# SQL thread will have the corresponding worker_id as 0.
--let $w_rows= `select @@global.slave_parallel_workers`

if ($w_rows == 0)
{
  --let $assert_text= there shall be 1 applier after a channel is deleted.
  --let $assert_cond= [select count(*) from performance_schema.replication_applier_status_by_worker where worker_id=0] = 1;
  --source include/assert.inc
  --let $pfs_w_rows= `select count(*) from performance_schema.replication_applier_status_by_worker where worker_id !=0`
  --let $w_rows= `select @@global.slave_parallel_workers`
  --let $assert_text= there shall be global.slave_parallel_workers rows after a channel is deleted.
  --let $assert_cond= "$pfs_w_rows" = "$w_rows"
  --source include/assert.inc
}
if ($w_rows != 0)
{
  --let $assert_text= there shall be 1 applier after a channel is deleted.
  --let $assert_cond= [select count(*) from performance_schema.replication_applier_status_by_coordinator] = 1;
  --source include/assert.inc
  --let $pfs_w_rows= `select count(*) from performance_schema.replication_applier_status_by_worker`
  --let $w_rows= `select @@global.slave_parallel_workers`
  --let $assert_text= there shall be global.slave_parallel_workers rows after a channel is deleted.
  --let $assert_cond= "$pfs_w_rows" = "$w_rows"
  --source include/assert.inc
}



--echo #
--echo #  Test case 8: Do a complete delete and see if the number of rows are zero
--echo #
RESET SLAVE ALL;


--let $assert_text= there shall be 0 rows after all channels are deleted.
--let $assert_cond= [select count(*) from performance_schema.replication_connection_configuration] = 0;
--source include/assert.inc

--let $assert_text= there shall be 0 rows after all channels are deleted.
--let $assert_cond= [select count(*) from performance_schema.replication_connection_status] = 0;
--source include/assert.inc

--let $assert_text= there shall be 0 rows after all channels are deleted.
--let $assert_cond= [select count(*) from performance_schema.replication_applier_configuration] = 0 ;
--source include/assert.inc

--let $assert_text= there shall be 0 rows after all channels are deleted.
--let $assert_cond= [select count(*) from performance_schema.replication_applier_status] = 0;
--source include/assert.inc

--let $assert_text= there shall be 0 rows after all channels are deleted.
--let $assert_cond= [select count(*) from performance_schema.replication_applier_status_by_coordinator] = 0;
--source include/assert.inc

--let $pfs_w_rows= `select count(*) from performance_schema.replication_applier_status_by_worker`
--let $w_rows= `select @@global.slave_parallel_workers`
--let $assert_text= there shall be global.slave_parallel_workers rows after a channel is deleted.

--let $assert_text= there shall be 0 rows after all channels are deleted.
--let $assert_cond= "$pfs_w_rows" = "0"
--source include/assert.inc

--let $rpl_skip_sync= 1
--let $rpl_skip_delete_channels= 1
--let $rpl_only_running_threads= 1
--source include/rpl_end.inc

Man Man