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

innodb.corrupted_during_recovery fails due to error that the table is corrupted

Details

    Description

      The test innodb.corrupted_during_recovery is occasionally failing like this, mostly on MSAN or the Valgrind builder, but also some others:

      10.11 f30244d13cff7fe3270216ef2214d3463305a0a9

      innodb.corrupted_during_recovery 'innodb' w35 [ fail ]  Found warnings/errors in server log file!
              Test ended at 2024-02-07 08:14:36
      line
      2024-02-07  8:14:18 3 [ERROR] InnoDB: Table `test`.`t1` is corrupted. Please drop the table and recreate.
      ^ Found warnings in /buildbot/amd64-ubuntu-2204-valgrind/build/mysql-test/var/35/log/mysqld.1.err
      

      I think that we simply need to add a suppression for this rare error. Even though I did not find any failures of this type in the 10.6 branch, I think that we’d better add the suppression already there, just in case.

      Attachments

        Activity

          The suppression was added in MDEV-19541 and it exists in the 10.6 branch, which is why the test does not fail in 10.6 or earlier. The suppression was lost in an incorrect merge from 10.6 to 10.7.

          marko Marko Mäkelä added a comment - The suppression was added in MDEV-19541 and it exists in the 10.6 branch, which is why the test does not fail in 10.6 or earlier. The suppression was lost in an incorrect merge from 10.6 to 10.7 .

          The function dict_table_open_name() was reporting errors in 3 rather inconsistent ways. I changed it so that ER_TABLE_CORRUPT or ER_PROVIDER_NOT_LOADED will be reported with a pretty-printed table name up to the SQL layer. Previously, the misleading error code ER_NO_SUCH_TABLE_IN_ENGINE could be reported when the table had been loaded into the dict_sys cache previously, presumably due to a more lenient ignore_err setting.

          marko Marko Mäkelä added a comment - The function dict_table_open_name() was reporting errors in 3 rather inconsistent ways. I changed it so that ER_TABLE_CORRUPT or ER_PROVIDER_NOT_LOADED will be reported with a pretty-printed table name up to the SQL layer. Previously, the misleading error code ER_NO_SUCH_TABLE_IN_ENGINE could be reported when the table had been loaded into the dict_sys cache previously, presumably due to a more lenient ignore_err setting.

          People

            marko Marko Mäkelä
            marko Marko Mäkelä
            Votes:
            0 Vote for this issue
            Watchers:
            1 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.