Details
-
Task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
Description
During ALTER TABLE MariaDB is creating some temporary #sql- prefixed table to hold the content of the new table. If MariaDB crashes during the ALTER TABLE, the #sql- tables will resist on disk and in the Innodb dictionary.
In 10.3 one can delete #sql- tables with DROP TABLE, but in earlier version of MariaDB this is not possible.
This will be properly fixed in 10.3 or 10.4 when we make ALTER TABLE, DROP TABLE and CREATE TABLE atomic. This will also ensure that .frm tables and the table definition in the storage engine is always up to date.
In the mean time, as part of this task, we will add a purge of #sql- table's during innodb recovery, both from the disk and from the dictionary.
This will stop one from getting errors like this in the error log:
Invalid (old?) table or database name '#sql-1bc30_11fce1'
Attachments
Issue Links
- blocks
-
MDEV-8069 DROP or rebuild of a large table may lock up InnoDB
- Closed
-
MDEV-11655 Transactional data dictionary
- Open
- includes
-
MDEV-13407 innodb.drop_table_background failed in buildbot with "Tablespace for table exists"
- Closed
-
MDEV-14717 RENAME TABLE in InnoDB is not crash-safe
- Closed
- is duplicated by
-
MDEV-11898 tablespace does not exist or is just being dropped
- Closed
-
MDEV-17164 Problem with temporary objects
- Closed
- relates to
-
MDEV-11655 Transactional data dictionary
- Open
-
MDEV-12023 Assertion failure sym_node->table != NULL on startup
- Closed
-
MDEV-13564 TRUNCATE TABLE and undo tablespace truncation are not compatible with Mariabackup
- Closed
-
MDEV-17296 MariaDB fails to start after update: Assertion failure in file pars0pars.cc line 818
- Closed