diff options
Diffstat (limited to 'mysql-test/suite/perfschema/t/rpl_threads.test')
-rw-r--r-- | mysql-test/suite/perfschema/t/rpl_threads.test | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/mysql-test/suite/perfschema/t/rpl_threads.test b/mysql-test/suite/perfschema/t/rpl_threads.test new file mode 100644 index 00000000..a5ca51a9 --- /dev/null +++ b/mysql-test/suite/perfschema/t/rpl_threads.test @@ -0,0 +1,85 @@ +# Tests for PERFORMANCE_SCHEMA + +--source include/have_log_bin.inc +--source include/not_embedded.inc +--source include/have_perfschema.inc +--source include/master-slave.inc + +--disable_warnings +drop table if exists test.t1; +--sync_slave_with_master +reset master; +--enable_warnings + +create table test.t1(a int); +drop table test.t1; + +--source include/show_binlog_events.inc + +# Notes +# +# The point of this test is to make sure code is properly instrumented, +# for replication threads. +# Each time an ID is assigned to a replication thread, +# visible in the INFORMATION_SCHEMA.PROCESSLIST table, +# the same PROCESSLIST_ID should be visible in table performance_schema.threads + +connection master; +-- echo "============ Performance schema on master ============" + +# Read the ID of the binlog dump connection, +# as exposed in PROCESSLIST. +--enable_prepare_warnings +select ID from INFORMATION_SCHEMA.PROCESSLIST + where COMMAND = "Binlog Dump" + into @master_dump_pid; +--disable_prepare_warnings + +select COMMAND, STATE + from INFORMATION_SCHEMA.PROCESSLIST + where ID = @master_dump_pid; + +# Make sure the performance schema also knows this PROCESSLIST_ID +select NAME, TYPE, PROCESSLIST_COMMAND, PROCESSLIST_STATE + from performance_schema.threads + where PROCESSLIST_ID = @master_dump_pid; + +sync_slave_with_master; +-- echo "============ Performance schema on slave ============" + +# Read the ID of the SLAVE IO thread, +# as exposed in PROCESSLIST. +--enable_prepare_warnings +select ID from INFORMATION_SCHEMA.PROCESSLIST + where STATE like "Waiting for master to send event%" + into @slave_io_pid; +--disable_prepare_warnings + +select COMMAND, STATE + from INFORMATION_SCHEMA.PROCESSLIST + where ID = @slave_io_pid; + +# Make sure the performance schema also knows this PROCESSLIST_ID +select NAME, TYPE, PROCESSLIST_COMMAND, PROCESSLIST_STATE + from performance_schema.threads + where PROCESSLIST_ID = @slave_io_pid; + +# Read the ID of the SLAVE SQL thread, +# as exposed in PROCESSLIST. +--enable_prepare_warnings +select ID from INFORMATION_SCHEMA.PROCESSLIST + where STATE like "Slave has read all relay log%" + into @slave_sql_pid; +--disable_prepare_warnings + +select COMMAND, STATE + from INFORMATION_SCHEMA.PROCESSLIST + where ID = @slave_sql_pid; + +# Make sure the performance schema also knows this PROCESSLIST_ID +select NAME, TYPE, PROCESSLIST_COMMAND, PROCESSLIST_STATE + from performance_schema.threads + where PROCESSLIST_ID = @slave_sql_pid; + +--source include/rpl_end.inc + |