1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-25334 FTWRL/Backup blocks DDL on temporary tables with binlog enabled, assertion fails in Diagnostics_area::set_error_status

Fixed by adding a MDL_BACKUP_COMMIT lock before altering temporary tables
whose creation was logged to binary log (in which case the ALTER TABLE
must also be logged)
This commit is contained in:
Monty
2021-04-06 16:37:11 +03:00
parent 58780b5afb
commit 4e2ca42225
3 changed files with 107 additions and 3 deletions

View File

@ -0,0 +1,40 @@
#
# MDEV-25334 FTWRL/Backup blocks DDL on temporary tables with binlog
# enabled assertion fails in Diagnostics_area::set_error_status
#
select @@binlog_format;
@@binlog_format
MIXED
connect con1,localhost,root,,;
connection default;
#
# Test 1
#
CREATE TEMPORARY TABLE tmp (a INT);
connection con1;
FLUSH TABLES WITH READ LOCK;
connection default;
SET lock_wait_timeout= 1;
ALTER TABLE tmp;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
connection con1;
unlock tables;
connection default;
drop table tmp;
#
# Test 2 (In statement format to ensure temporary table gets logged)
#
set @@binlog_format=statement;
CREATE TEMPORARY TABLE tmp (a INT);
connection con1;
BACKUP STAGE START;
BACKUP STAGE BLOCK_COMMIT;
connection default;
SET lock_wait_timeout= 1;
ALTER TABLE tmp;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
connection con1;
BACKUP STAGE end;
connection default;
drop table tmp;
disconnect con1;