mirror of
https://github.com/MariaDB/server.git
synced 2025-07-21 21:22:27 +03:00
need to protect access to thread-local cache_mngr with LOCK_thd_data technically only access from different threads has to be protected, but this is the SHOW STATUS code path, so the difference is neglectable
92 lines
2.7 KiB
Plaintext
92 lines
2.7 KiB
Plaintext
# 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;
|
|
|
|
--echo #
|
|
--echo # MDEV-33031 Assertion failure upon reading from performance schema with binlog enabled
|
|
--echo #
|
|
select variable_name, variable_value from performance_schema.status_by_thread
|
|
where variable_name like '%impossible%'; # should not crash
|
|
|
|
--source include/rpl_end.inc
|
|
|