mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 02:46:29 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			91 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 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;
 | 
