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;