1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-24 14:48:09 +03:00
Files
mariadb/mysql-test/suite/perfschema/t/setup_instruments_defaults.test
Kristian Nielsen 826d7c68d2 MDEV-7342: Test failure in perfschema.setup_instruments_defaults
Fix a possible race in the test case when restarting the server.

Make sure we have disconnected before waiting for the reconnect
that signals that the server is back up. Otherwise, we may in
rare cases continue the test while the old server is shutting
down, eventually leading to "connection lost" failure.
2014-12-18 11:59:08 +01:00

86 lines
2.6 KiB
Plaintext

# Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc
--source include/have_perfschema.inc
# Verify that the configuration options were applied correctly to the
# performance_schema.setup_instruments table. These instruments that are known to persist across
# platforms and the various compile options.
--echo #
--echo # Verify that the configuration file defaults were processed correctly
--echo #
SELECT * FROM performance_schema.setup_instruments
WHERE name IN (
'wait/synch/mutex/sql/LOCK_user_conn',
'wait/synch/mutex/sql/LOCK_uuid_generator',
'wait/synch/mutex/sql/LOCK_xid_cache',
'stage/sql/creating table')
AND enabled = 'yes' AND timed = 'no'
ORDER BY name;
SELECT * FROM performance_schema.setup_instruments
WHERE name = 'wait/synch/mutex/sql/LOCK_thread_count'
AND enabled = 'no' AND timed = 'no';
SELECT * FROM performance_schema.setup_instruments
WHERE name IN (
'wait/synch/mutex/sql/LOG_INFO::lock',
'wait/synch/mutex/sql/THD::LOCK_thd_data')
AND enabled = 'yes' AND timed = 'yes'
ORDER BY name;
SELECT * FROM performance_schema.setup_instruments
WHERE name = 'wait/synch/mutex/sql/hash_filo::lock'
AND enabled = 'no' AND timed = 'no'
ORDER BY name;
--echo #
--echo # Verify that the instrument startup settings are not not visible.
--echo #
SHOW VARIABLES LIKE "%/wait/synch/mutex%";
--echo #
--echo # Verify command line options are processed correctly
--echo #
# The instrument wait/io/table/sql/handler should be enabled and timed. We will
# restart the server with the instrument disabled from the command line.
--echo #
--echo # Verify that wait/io/table/sql/handler is enabled and timed
--echo #
SELECT * FROM performance_schema.setup_instruments
WHERE name like "%wait/io/table/sql/handler%";
# Write file to make mysql-test-run.pl wait for the server to stop
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
# Restart the server
--echo #
--echo # Stop server
--send_shutdown
--source include/wait_until_disconnected.inc
--echo # Restart server with wait/io/table/sql/handler disabled
--exec echo "restart:--loose-performance-schema-instrument=%wait/io/table/sql/%=off" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
# Turn on reconnect
--echo # Enable reconnect
--enable_reconnect
# Wait for server to be back online again
--echo # Wait until connected again
--source include/wait_until_connected_again.inc
# Turn off reconnect again
--echo # Disable reconnect
--disable_reconnect
--echo #
--echo # Verify that wait/io/table is disabled
--echo #
SELECT * FROM performance_schema.setup_instruments
WHERE name like "%wait/io/table/sql/handler%";