diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
commit | 3f619478f796eddbba6e39502fe941b285dd97b1 (patch) | |
tree | e2c7b5777f728320e5b5542b6213fd3591ba51e2 /mysql-test/main/plugin_vars.test | |
parent | Initial commit. (diff) | |
download | mariadb-3f619478f796eddbba6e39502fe941b285dd97b1.tar.xz mariadb-3f619478f796eddbba6e39502fe941b285dd97b1.zip |
Adding upstream version 1:10.11.6.upstream/1%10.11.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test/main/plugin_vars.test')
-rw-r--r-- | mysql-test/main/plugin_vars.test | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/mysql-test/main/plugin_vars.test b/mysql-test/main/plugin_vars.test new file mode 100644 index 00000000..797dcbea --- /dev/null +++ b/mysql-test/main/plugin_vars.test @@ -0,0 +1,91 @@ +if (!$QUERY_RESPONSE_TIME_SO) { + skip Needs query_response_time loadable plugin; +} +if (!$HA_ARCHIVE_SO) { + skip Needs Archive loadable plugin; +} + +--echo # +--echo # MDEV-5345 - Deadlock between mysql_change_user(), SHOW VARIABLES and +--echo # INSTALL PLUGIN +--echo # + +# Prepare test +delimiter |; +CREATE PROCEDURE p_install(x INT) +BEGIN + DECLARE CONTINUE HANDLER FOR 1126 BEGIN END; + WHILE x DO + SET x= x - 1; + INSTALL PLUGIN no_such_plugin SONAME 'no_such_object'; + END WHILE; +END| + +CREATE PROCEDURE p_show_vars(x INT) +WHILE x DO + SET x= x - 1; + SHOW VARIABLES; +END WHILE| +delimiter ;| + +connect(con1, localhost, root,,); +connect(con2, localhost, root,,); + +# Start test +connection con1; +--send CALL p_install(100) + +connection con2; +--send CALL p_show_vars(100) + +connection default; + +disable_result_log; +let $i= 100; +while ($i) +{ + change_user; + dec $i; +} + +# Cleanup +connection con1; +reap; +connection con2; +reap; +connection default; +enable_result_log; + +disconnect con1; +disconnect con2; +USE test; +DROP PROCEDURE p_install; +DROP PROCEDURE p_show_vars; + +--echo # +--echo # Bug#29363867: LOST CONNECTION TO MYSQL SERVER DURING QUERY +--echo # + +--echo ## prepared SET with a plugin variable prevents uninstall +install plugin query_response_time soname 'query_response_time'; +prepare s from 'set global query_response_time_range_base=16'; +select plugin_status from information_schema.plugins where plugin_name='query_response_time'; +uninstall plugin query_response_time; +execute s; +execute s; +select plugin_status from information_schema.plugins where plugin_name='query_response_time'; +deallocate prepare s; +select plugin_status from information_schema.plugins where plugin_name='query_response_time'; + +--echo ## prepared SET mentioning a plugin otherwise does not prevent uninstall +install plugin archive soname 'ha_archive'; +create table t1 (a int) engine=archive; +insert t1 values (1),(2),(3); +prepare s from 'set session auto_increment_increment=(select count(*) from t1)'; +flush tables; +select plugin_status from information_schema.plugins where plugin_name='archive'; +uninstall plugin archive; +select plugin_status from information_schema.plugins where plugin_name='archive'; +--error ER_UNKNOWN_STORAGE_ENGINE +execute s; +drop table t1; |