polardbxengine/mysql-test/suite/query_rewrite_plugins/r/refresh_thread.result

50 lines
1.8 KiB
Plaintext

#
# Tests of the dedicated thread for refreshing the rules table.
#
SET sql_mode = 'PIPES_AS_CONCAT';
# Query rewrite plugin was installed.
#
# We will now test shutting down the server while refreshing rules. We
# then restart the server and make sure it recovered.
#
# We will shut down the server while a session is waiting for a debug
# sync signal. All debug sync points are released during shutdown,
# so the plugin will proceed to try and read from a handler with a server
# that has gone away. This will lead to a storage engine error.
CALL mtr.add_suppression( "Got error from storage engine while refreshing " ||
"rewrite rules." );
INSERT INTO query_rewrite.rewrite_rules ( pattern, replacement )
VALUES ( 'SELECT "Rewrite"', 'SELECT "Rewritten"' );
SET GLOBAL debug= '+d,dbug.block_do_refresh';
# Two root connections are supposed to show here
SELECT COUNT(user) FROM information_schema.processlist WHERE user LIKE 'root';
COUNT(user)
2
# We have to do this in order to avoid deadlock on the memory table's
# mutex.
SET @@global.rewriter_enabled = OFF;
CALL query_rewrite.flush_rewrite_rules();
# We don't care if we time out here, as long as we manage to restart the
# server.
SET debug_sync = 'now WAIT_FOR parked';
# Two root connections are supposed to show here
SELECT COUNT(user) FROM information_schema.processlist WHERE user LIKE 'root';
COUNT(user)
2
#
# Restart the server
#
SELECT 'Rewrite';
Rewritten
Rewritten
Warnings:
Note 1105 Query 'SELECT 'Rewrite'' rewritten to 'SELECT "Rewritten"' by a query rewrite plugin
# One root connection is supposed to show here, as the rewrite thread is now gone
SELECT COUNT(user) FROM information_schema.processlist WHERE user LIKE 'root';
COUNT(user)
1
SET @@global.rewriter_enabled = DEFAULT;
Warnings:
Warning 1620 Plugin is busy and will be uninstalled on shutdown
# Query rewrite plugin was queued for uninstalling.