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

MDEV-23843 Assertions in Diagnostics_area upon table operations under FTWRL

2 different problems:
- MYSQL_BIN_LOG::write() did not check if mdl_context.acquire_lock() failed
- Sql_cmd_optimize_table::execute() and Sql_cmd_repair_table::execute()
  called write_bin_log(), which could fail if sql_admin() had already
  called my_eof()

Fixed by adding check for aquire_lock() return status and protect
write_bin_log() in the above two functions with set_overwrite_status().
This commit is contained in:
Monty
2021-02-14 17:42:19 +02:00
parent 3cd32a9baf
commit af31e2c55d
4 changed files with 58 additions and 2 deletions

View File

@ -0,0 +1,22 @@
#
# MDEV-23843 Assertions in Diagnostics_area upon table operations under
# FTWRL
#
CREATE TABLE t1 (a INT);
FLUSH TABLES WITH READ LOCK;
connect con1,localhost,root,,;
SET lock_wait_timeout= 1;
OPTIMIZE TABLE t1;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
disconnect con1;
connection default;
UNLOCK TABLES;
DROP TABLE t1;
FLUSH TABLES WITH READ LOCK;
connect con1,localhost,root,,test;
SET lock_wait_timeout= 1;
FLUSH TABLES;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
connection default;
disconnect con1;
unlock tables;