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
|
# Testing which locks we get from all stages
|
||||||
#
|
#
|
||||||
BACKUP STAGE START;
|
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
|
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||||
MDL_BACKUP_START Backup lock
|
MDL_BACKUP_START Backup lock
|
||||||
BACKUP STAGE FLUSH;
|
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
|
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||||
MDL_BACKUP_FLUSH Backup lock
|
MDL_BACKUP_FLUSH Backup lock
|
||||||
BACKUP STAGE BLOCK_DDL;
|
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
|
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||||
MDL_BACKUP_WAIT_DDL Backup lock
|
MDL_BACKUP_WAIT_DDL Backup lock
|
||||||
BACKUP STAGE BLOCK_COMMIT;
|
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
|
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||||
MDL_BACKUP_WAIT_COMMIT Backup lock
|
MDL_BACKUP_WAIT_COMMIT Backup lock
|
||||||
BACKUP STAGE END;
|
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
|
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||||
#
|
#
|
||||||
# testing BACKUP STAGE LOCK's
|
# testing BACKUP STAGE LOCK's
|
||||||
@ -39,7 +44,8 @@ connection con1;
|
|||||||
alter table t1 add column (j int), algorithm copy;
|
alter table t1 add column (j int), algorithm copy;
|
||||||
connection con2;
|
connection con2;
|
||||||
backup stage flush;
|
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
|
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||||
MDL_BACKUP_DDL Backup lock
|
MDL_BACKUP_DDL Backup lock
|
||||||
MDL_BACKUP_FLUSH Backup lock
|
MDL_BACKUP_FLUSH Backup lock
|
||||||
@ -75,7 +81,8 @@ alter table t1 add column (j int);
|
|||||||
connection con2;
|
connection con2;
|
||||||
backup stage start;
|
backup stage start;
|
||||||
backup stage flush;
|
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
|
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||||
MDL_BACKUP_ALTER_COPY Backup lock
|
MDL_BACKUP_ALTER_COPY Backup lock
|
||||||
MDL_BACKUP_FLUSH Backup lock
|
MDL_BACKUP_FLUSH Backup lock
|
||||||
@ -110,7 +117,8 @@ backup stage flush;
|
|||||||
SET STATEMENT lock_wait_timeout=0 FOR SELECT * FROM t1;
|
SET STATEMENT lock_wait_timeout=0 FOR SELECT * FROM t1;
|
||||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||||
backup stage block_ddl;
|
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
|
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||||
MDL_BACKUP_WAIT_DDL Backup lock
|
MDL_BACKUP_WAIT_DDL Backup lock
|
||||||
MDL_SHARED_WRITE Table metadata lock test t1
|
MDL_SHARED_WRITE Table metadata lock test t1
|
||||||
@ -130,7 +138,8 @@ connection con1;
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
connection con2;
|
connection con2;
|
||||||
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
|
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
|
||||||
MDL_BACKUP_WAIT_DDL Backup lock
|
MDL_BACKUP_WAIT_DDL Backup lock
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
|
@ -10,16 +10,19 @@
|
|||||||
--echo # Testing which locks we get from all stages
|
--echo # Testing which locks we get from all stages
|
||||||
--echo #
|
--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;
|
BACKUP STAGE START;
|
||||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
eval SELECT $mdl;
|
||||||
BACKUP STAGE FLUSH;
|
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_DDL;
|
||||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
eval SELECT $mdl;
|
||||||
BACKUP STAGE BLOCK_COMMIT;
|
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;
|
BACKUP STAGE END;
|
||||||
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
|
eval SELECT $mdl;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # testing BACKUP STAGE LOCK's
|
--echo # testing BACKUP STAGE LOCK's
|
||||||
@ -54,7 +57,7 @@ let $wait_condition=
|
|||||||
where state = "Waiting for table metadata lock";
|
where state = "Waiting for table metadata lock";
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
backup stage flush;
|
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
|
# 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
|
# lock_wait_timeout. This is mostly to ensure that both methods works
|
||||||
@ -103,7 +106,7 @@ let $wait_condition=
|
|||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
backup stage start;
|
backup stage start;
|
||||||
backup stage flush;
|
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_ddl;
|
||||||
backup stage block_commit;
|
backup stage block_commit;
|
||||||
connection default;
|
connection default;
|
||||||
@ -146,7 +149,7 @@ let $wait_condition=
|
|||||||
SET STATEMENT lock_wait_timeout=0 FOR SELECT * FROM t1;
|
SET STATEMENT lock_wait_timeout=0 FOR SELECT * FROM t1;
|
||||||
|
|
||||||
backup stage block_ddl;
|
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;
|
backup stage end;
|
||||||
|
|
||||||
connection default;
|
connection default;
|
||||||
@ -170,7 +173,7 @@ let $wait_condition=
|
|||||||
where state = "Waiting for backup lock";
|
where state = "Waiting for backup lock";
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
connection con2;
|
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
|
# Check that select's are not blocked
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
connection default;
|
connection default;
|
||||||
|
Reference in New Issue
Block a user