50 lines
1.8 KiB
Plaintext
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.
|