mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-4750 fixup: main.backup_lock result difference
This test may occasionally display MDL for the
InnoDB persistent statistics tables. Filter them out.
This fixes up commit 9608773f75
.
This commit is contained in:
@ -2,23 +2,28 @@
|
||||
# Testing which locks we get from all stages
|
||||
#
|
||||
BACKUP STAGE START;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
|
||||
WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
|
||||
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||
MDL_BACKUP_START Backup lock
|
||||
BACKUP STAGE FLUSH;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
|
||||
WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
|
||||
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||
MDL_BACKUP_FLUSH Backup lock
|
||||
BACKUP STAGE BLOCK_DDL;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
|
||||
WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
|
||||
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||
MDL_BACKUP_WAIT_DDL Backup lock
|
||||
BACKUP STAGE BLOCK_COMMIT;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
|
||||
WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
|
||||
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||
MDL_BACKUP_WAIT_COMMIT Backup lock
|
||||
BACKUP STAGE END;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
|
||||
WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
|
||||
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||
#
|
||||
# testing BACKUP STAGE LOCK's
|
||||
@ -39,7 +44,8 @@ connection con1;
|
||||
alter table t1 add column (j int), algorithm copy;
|
||||
connection con2;
|
||||
backup stage flush;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
|
||||
WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
|
||||
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||
MDL_BACKUP_DDL Backup lock
|
||||
MDL_BACKUP_FLUSH Backup lock
|
||||
@ -75,7 +81,8 @@ alter table t1 add column (j int);
|
||||
connection con2;
|
||||
backup stage start;
|
||||
backup stage flush;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
|
||||
WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
|
||||
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||
MDL_BACKUP_ALTER_COPY Backup lock
|
||||
MDL_BACKUP_FLUSH Backup lock
|
||||
@ -110,7 +117,8 @@ backup stage flush;
|
||||
SET STATEMENT lock_wait_timeout=0 FOR SELECT * FROM t1;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
backup stage block_ddl;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
|
||||
WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
|
||||
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||
MDL_BACKUP_WAIT_DDL Backup lock
|
||||
MDL_SHARED_WRITE Table metadata lock test t1
|
||||
@ -130,7 +138,8 @@ connection con1;
|
||||
DROP TABLE t1;
|
||||
connection con2;
|
||||
connection con2;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
|
||||
WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
|
||||
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||
MDL_BACKUP_WAIT_DDL Backup lock
|
||||
SELECT * FROM t1;
|
||||
|
@ -10,16 +10,19 @@
|
||||
--echo # Testing which locks we get from all stages
|
||||
--echo #
|
||||
|
||||
let $mdl= LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
|
||||
WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
|
||||
|
||||
BACKUP STAGE START;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
eval SELECT $mdl;
|
||||
BACKUP STAGE FLUSH;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
eval SELECT $mdl;
|
||||
BACKUP STAGE BLOCK_DDL;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
eval SELECT $mdl;
|
||||
BACKUP STAGE BLOCK_COMMIT;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
eval SELECT $mdl;
|
||||
BACKUP STAGE END;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
eval SELECT $mdl;
|
||||
|
||||
--echo #
|
||||
--echo # testing BACKUP STAGE LOCK's
|
||||
@ -54,7 +57,7 @@ let $wait_condition=
|
||||
where state = "Waiting for table metadata lock";
|
||||
--source include/wait_condition.inc
|
||||
backup stage flush;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
eval SELECT $mdl;
|
||||
#
|
||||
# Do first test with max_statement_time, other tests later are done with
|
||||
# lock_wait_timeout. This is mostly to ensure that both methods works
|
||||
@ -103,7 +106,7 @@ let $wait_condition=
|
||||
--source include/wait_condition.inc
|
||||
backup stage start;
|
||||
backup stage flush;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
eval SELECT $mdl;
|
||||
backup stage block_ddl;
|
||||
backup stage block_commit;
|
||||
connection default;
|
||||
@ -146,7 +149,7 @@ let $wait_condition=
|
||||
SET STATEMENT lock_wait_timeout=0 FOR SELECT * FROM t1;
|
||||
|
||||
backup stage block_ddl;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
eval SELECT $mdl;
|
||||
backup stage end;
|
||||
|
||||
connection default;
|
||||
@ -170,7 +173,7 @@ let $wait_condition=
|
||||
where state = "Waiting for backup lock";
|
||||
--source include/wait_condition.inc
|
||||
connection con2;
|
||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
||||
eval SELECT $mdl;
|
||||
# Check that select's are not blocked
|
||||
SELECT * FROM t1;
|
||||
connection default;
|
||||
|
Reference in New Issue
Block a user