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

MDEV-17470 Orphan temporary files after interrupted ALTER cause InnoDB: Operating system error number 17 and eventual fatal error 71

Orphan #sql* tables may remain after ALTER TABLE
was interrupted by timeout or KILL or client disconnect.

This is a regression caused by MDEV-16515.

Similar to temporary tables (MDEV-16647), we had better ignore the
KILL when dropping the original table in the final part of ALTER TABLE.

Closes #1020
This commit is contained in:
Eugene Kosov
2018-12-14 01:28:55 +03:00
committed by Marko Mäkelä
parent 9ad1663f78
commit c5a5eaa9a9
4 changed files with 55 additions and 4 deletions

View File

@ -68,3 +68,24 @@ SET DEBUG_SYNC = 'now SIGNAL S2';
ERROR 23000: Duplicate entry '1' for key 'a'
SET DEBUG_SYNC='RESET';
DROP TABLE t1;
#
# MDEV-17470 Orphan temporary files after interrupted ALTER
# cause InnoDB: Operating system error number 17 and eventual
# fatal error 71
#
CREATE TABLE t1 (pk INT AUTO_INCREMENT PRIMARY KEY, i INT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (NULL,1),(NULL,2),(NULL,3),(NULL,4),(NULL,5),(NULL,6),(NULL,7),(NULL,8);
INSERT INTO t1 SELECT NULL, i FROM t1;
INSERT INTO t1 SELECT NULL, i FROM t1;
INSERT INTO t1 SELECT NULL, i FROM t1;
INSERT INTO t1 SELECT NULL, i FROM t1;
INSERT INTO t1 SELECT NULL, i FROM t1;
LOCK TABLE t1 READ;
SET max_statement_time= 1;
ALTER TABLE t1 FORCE, ALGORITHM=COPY;
ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
SET DEBUG_SYNC = 'now SIGNAL stop_waining';
SET DEBUG_SYNC = 'now WAIT_FOR stop_waining';
UNLOCK TABLES;
DROP TABLE t1;
SET DEBUG_SYNC = 'RESET';