Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
5.5.34
-
None
-
None
Description
3 threads required to reproduce this deadlock:
thread1: mysql_change_user() (or connects/disconnects)
thread2: INSTALL PLUGIN
thread3: SHOW VARIABLES
Easily repeatable with mtr test case:
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,,); |
|
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; |
}
|
|
connection con1; |
reap;
|
connection con2; |
reap;
|
connection default; |
enable_result_log;
|
|
disconnect con1;
|
disconnect con2;
|
DROP PROCEDURE p_install; |
DROP PROCEDURE p_show_vars; |
Attachments
Issue Links
- is part of
-
MDEV-5089 possible deadlocks between rwlocks and mutexes
- Closed
- links to