mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Bug #10942 "deadlock with FLUSH TABLES WITH READ LOCK + STOP SLAVE"
don't allow STOP SLAVE if global read lock is in taken
This commit is contained in:
@ -38,3 +38,9 @@ master-bin.000001 461 Query 1 461 use `test`; rename table t1 to t5, t2 to t1
|
|||||||
master-bin.000001 527 Query 1 527 use `test`; flush tables
|
master-bin.000001 527 Query 1 527 use `test`; flush tables
|
||||||
select * from t3;
|
select * from t3;
|
||||||
a
|
a
|
||||||
|
stop slave;
|
||||||
|
drop table t1;
|
||||||
|
flush tables with read lock;
|
||||||
|
start slave;
|
||||||
|
stop slave;
|
||||||
|
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
|
||||||
|
@ -37,4 +37,14 @@ select * from t3;
|
|||||||
# Note that all this confusion may cause warnings 'table xx is open on rename'
|
# Note that all this confusion may cause warnings 'table xx is open on rename'
|
||||||
# in the .err files; these are not fatal and are not reported by mysql-test-run.
|
# in the .err files; these are not fatal and are not reported by mysql-test-run.
|
||||||
|
|
||||||
|
stop slave;
|
||||||
|
connection master;
|
||||||
|
drop table t1;
|
||||||
|
connection slave;
|
||||||
|
flush tables with read lock;
|
||||||
|
start slave;
|
||||||
|
sleep 1;
|
||||||
|
--error 1192
|
||||||
|
stop slave;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
@ -2601,7 +2601,7 @@ unsent_create_error:
|
|||||||
To prevent that, refuse SLAVE STOP if the
|
To prevent that, refuse SLAVE STOP if the
|
||||||
client thread has locked tables
|
client thread has locked tables
|
||||||
*/
|
*/
|
||||||
if (thd->locked_tables || thd->active_transaction())
|
if (thd->locked_tables || thd->active_transaction() || thd->global_read_lock)
|
||||||
{
|
{
|
||||||
send_error(thd,ER_LOCK_OR_ACTIVE_TRANSACTION);
|
send_error(thd,ER_LOCK_OR_ACTIVE_TRANSACTION);
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user