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

CHECK TABLE should use READ UNCOMMITED if innodb_force_recovery>=5

    Details

      Description

      MDEV-15418 changed InnoDB to use the READ UNCOMMITTED isolation level when the transaction recovery is disabled by setting innodb_force_recovery to 5 or 6. Alas, CHECK TABLE would still internally use REPEATABLE READ. After merging the MDEV-18936 fix, this would cause a crash in the test innodb.ibuf_not_empty:

      CURRENT_TEST: innodb.ibuf_not_empty
      mysqltest: At line 50: query 'check table t1' failed: 2013: Lost connection to MySQL server during query
      Version: '10.3.14-MariaDB-debug-log'  socket: '/dev/shm/10.3/mysql-test/var/tmp/mysqld.1.sock'  port: 16000  Source distribution
      2019-03-17 12:48:06 3 [ERROR] InnoDB: Failed to find tablespace for table `test`.`t1` in the cache. Attempting to load the tablespace with space id 5
      2019-03-17 12:48:06 3 [Warning] InnoDB: Allocated tablespace ID 5 for test/t1, old maximum was 0
      2019-03-17 12:48:06 3 [Warning] InnoDB: A transaction id in a record of table `test`.`t1` is newer than the system-wide maximum.
      mysqld: /mariadb/10.3/storage/innobase/trx/trx0sys.cc:62: static void ReadView::check_trx_id_sanity(trx_id_t, const table_name_t &): Assertion `0' failed.
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                marko Marko Mäkelä
                Reporter:
                marko Marko Mäkelä
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: