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

InnoDB: Operating system error number 2 in a file operation and InnoDB: Cannot open datafile for read-only upon startup on datadir restored from full backup

    Details

      Description

      10.4 30da40bb8c303

      2019-01-10 16:07:43 0 [Note] InnoDB: New log files created, LSN=9813228
      2019-01-10 16:07:43 0 [ERROR] InnoDB: Operating system error number 2 in a file operation.
      2019-01-10 16:07:43 0 [ERROR] InnoDB: The error means the system cannot find the path specified.
      2019-01-10 16:07:43 0 [ERROR] InnoDB: If you are installing InnoDB, remember that you must create directories yourself, InnoDB does not create them.
      2019-01-10 16:07:43 0 [ERROR] InnoDB: Cannot open datafile for read-only: './test/seq9.ibd' OS error: 71
      2019-01-10 16:07:43 0 [ERROR] InnoDB: Operating system error number 2 in a file operation.
      2019-01-10 16:07:43 0 [ERROR] InnoDB: The error means the system cannot find the path specified.
      2019-01-10 16:07:43 0 [ERROR] InnoDB: If you are installing InnoDB, remember that you must create directories yourself, InnoDB does not create them.
      2019-01-10 16:07:43 0 [ERROR] InnoDB: Could not find a valid tablespace file for ``test`.`seq9``. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting-datadict.html for how to resolve the issue.
      

      Further attempts to open tables cause more errors

      MariaDB [(none)]> show create table test.seq9;
      ERROR 1932 (42S02): Table 'test.seq9' doesn't exist in engine
      MariaDB [(none)]> show create table test.seq8;
      ERROR 1932 (42S02): Table 'test.seq8' doesn't exist in engine
      

      2019-01-10 16:16:17 9 [ERROR] InnoDB: Failed to find tablespace for table `test`.`seq9` in the cache. Attempting to load the tablespace with space id 649
      2019-01-10 16:16:17 9 [ERROR] InnoDB: Operating system error number 2 in a file operation.
      2019-01-10 16:16:17 9 [ERROR] InnoDB: The error means the system cannot find the path specified.
      2019-01-10 16:16:17 9 [ERROR] InnoDB: Cannot open datafile for read-only: './test/seq9.ibd' OS error: 71
      2019-01-10 16:16:17 9 [ERROR] InnoDB: Operating system error number 2 in a file operation.
      2019-01-10 16:16:17 9 [ERROR] InnoDB: The error means the system cannot find the path specified.
      2019-01-10 16:16:17 9 [ERROR] InnoDB: Could not find a valid tablespace file for ``test`.`seq9``. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting-datadict.html for how to resolve the issue.
      2019-01-10 16:16:20 9 [ERROR] InnoDB: Expected tablespace id 631 but found 649 in the file ./test/seq8.ibd
      2019-01-10 16:16:20 9 [ERROR] InnoDB: Expected tablespace id 631 but found 649 in the file ./test/seq8.ibd
      2019-01-10 16:16:20 9 [ERROR] InnoDB: Table `test`.`seq8` is corrupted. Please drop the table and recreate.
      

      The backup datadir before prepare is attached, as well as the backup log.
      To reproduce, run

      bin/mariabackup --prepare --target-dir=`pwd`/backup_before_prepare
      bin/mariabackup --copy-back --target-dir=`pwd`/backup_before_prepare --datadir=`pwd`/data 
      

      and start the server. All defaults will do, or for the accuracy you can use --innodb-compression-algorithm=none which the initial server was run with. It doesn't make any difference.

      I have no information yet whether it affects earlier versions.


      Notes on the origin of the report


      Please note it's not necessarily reproducible this way.

      https://travis-ci.org/elenst/travis-tests/jobs/477530220

      Tests: elenst-dev 0ebbe452
      Toolbox: ece65ed3b78

      perl ./runall-new.pl --basedir=/home/travis/server --vardir=/home/travis/logs/vardir --duration=350 --threads=4 --seed=1547092682 --reporters=Backtrace,ErrorLog,Deadlock --skip-gendata --gendata-advanced --views --grammar=conf/mariadb/generic-dml.yy --redefine=conf/mariadb/bulk_insert.yy --mysqld=--log_output=FILE --mysqld=--max-statement-time=20 --mysqld=--lock-wait-timeout=10 --mysqld=--loose-innodb-lock-wait-timeout=5 --mysqld=--loose-debug_assert_on_not_freed_memory=0 --filter=/home/travis/mariadb-toolbox/travis/10.4-combo-filter.ff --mysqld=--innodb-compression-algorithm=none --innodb-page-size=8K --engine=InnoDB --scenario=MariaBackupFull --redefine=conf/mariadb/alter_table.yy --redefine=conf/mariadb/modules/admin.yy --redefine=conf/mariadb/versioning.yy --redefine=conf/mariadb/sequences.yy
      


      The test log is attached as trial.log

        Attachments

        1. backup_before_prepare.tar.gz
          841 kB
        2. mbackup_backup.log
          51 kB
        3. mysql.err
          4 kB
        4. trial.log
          60 kB

          Issue Links

            Activity

              People

              • Assignee:
                wlad Vladislav Vaintroub
                Reporter:
                elenst Elena Stepanova
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: