Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-14585

Automatically remove #sql- tables in innodb dictionary during recovery

Details

    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

          Activity

            Transition Time In Source Status Execution Times
            Marko Mäkelä made transition -
            Open Confirmed
            8m 49s 1
            Marko Mäkelä made transition -
            Confirmed In Progress
            3d 6h 3m 1
            Marko Mäkelä made transition -
            In Progress Closed
            12d 4h 27m 1

            People

              marko Marko Mäkelä
              monty Michael Widenius
              Votes:
              1 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.