mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 20:12:31 +01:00
53 lines
1.3 KiB
Text
53 lines
1.3 KiB
Text
#
|
|
# Make sure pending LOCK TABLES doesn't block BACKUP STAGE
|
|
#
|
|
CREATE TABLE t1(a INT);
|
|
LOCK TABLE t1 READ;
|
|
#
|
|
connect con1,localhost,root,,;
|
|
SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL ready';
|
|
LOCK TABLE t1 WRITE;
|
|
#
|
|
connect con2,localhost,root,,;
|
|
SET DEBUG_SYNC= 'now WAIT_FOR ready';
|
|
BACKUP STAGE START;
|
|
BACKUP STAGE FLUSH;
|
|
BACKUP STAGE BLOCK_DDL;
|
|
BACKUP STAGE END;
|
|
disconnect con2;
|
|
#
|
|
connection default;
|
|
UNLOCK TABLES;
|
|
#
|
|
connection con1;
|
|
UNLOCK TABLES;
|
|
disconnect con1;
|
|
#
|
|
connection default;
|
|
DROP TABLE t1;
|
|
SET DEBUG_SYNC= 'RESET';
|
|
#
|
|
# Demonstrates a deadlock if BACKUP namespace is reorder after SCHEMA.
|
|
# Culprit is ALTER TABLE taking SCHEMA lock on target database after
|
|
# BACKUP lock was acquired.
|
|
#
|
|
CREATE DATABASE test2;
|
|
CREATE TABLE t1(a INT) ENGINE=InnoDB;
|
|
SET DEBUG_SYNC='alter_opened_table SIGNAL ready WAIT_FOR go';
|
|
ALTER TABLE t1 RENAME TO test2.t1;
|
|
connect con1,localhost,root,,;
|
|
SET DEBUG_SYNC='now WAIT_FOR ready';
|
|
BACKUP STAGE START;
|
|
SET DEBUG_SYNC='mdl_acquire_lock_wait SIGNAL ready1';
|
|
BACKUP STAGE BLOCK_DDL;
|
|
connect con2,localhost,root,,;
|
|
SET DEBUG_SYNC='now WAIT_FOR ready1';
|
|
SET DEBUG_SYNC='mdl_acquire_lock_wait SIGNAL go';
|
|
DROP DATABASE test2;
|
|
connection default;
|
|
connection con1;
|
|
disconnect con1;
|
|
connection con2;
|
|
disconnect con2;
|
|
connection default;
|
|
SET DEBUG_SYNC='reset';
|