1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
#
# 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
Warnings:
Warning 1287 'INFORMATION_SCHEMA.PROCESSLIST' is deprecated and will be removed in a future release. Please use performance_schema.processlist instead
# 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
Warnings:
Warning 1287 'INFORMATION_SCHEMA.PROCESSLIST' is deprecated and will be removed in a future release. Please use performance_schema.processlist instead
#
# 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
Warnings:
Warning 1287 'INFORMATION_SCHEMA.PROCESSLIST' is deprecated and will be removed in a future release. Please use performance_schema.processlist instead
SET @@global.rewriter_enabled = DEFAULT;
Warnings:
Warning 1620 Plugin is busy and will be uninstalled on shutdown
# Query rewrite plugin was queued for uninstalling.
|