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

Merge applicable InnoDB changes from MySQL 8.0.38 and 8.0.39

    XMLWordPrintable

Details

    Description

      The recent MySQL 8.0.38 and MySQL 8.0.39 releases include the following InnoDB changes:

      Not applicable to MariaDB Server

      Bug #36808732 - Crash in restart after creating 10,000 tables
      Bug#35200385 The parallel tablespace scan in 8.0 doesn't work as expected (follow-up)
      These changes are related to the removal of the MLOG_FILE_NAME log record which I had introduced in MySQL 5.7 in order to remove the need to open all data files on InnoDB crash recovery. MariaDB still uses that mechanism; MDEV-12353 renamed the record to FILE_MODIFY.

      28eb1ff1127 Bug #33398681 - ibd tablespace file is moved back from innodb_directories to datadir after ALTER TABLE
      Bug#35869747: Cannot drop index from upgraded instance (follow-up)
      These are regressions due to the Global Data Dictionary, which was introduced in MySQL 8.0. MariaDB Server uses .frm files and data dictionary tables in the InnoDB system tablespace, and DDL is expected to be (mostly) atomic and crash-safe starting with MariaDB Server 10.6.

      Bug#36526369 MySQL server crashes on UPDATE after ALTER TABLE (follow-up)
      Bug#36571091: MySQL server crashes on UPDATE after ALTER TABLE
      These are related to the MySQL implementation of MDEV-11369 or possibly MDEV-15562, specifically to the way how log records are written for DML operation. In MDEV-12353 and MDEV-21724 I designed a log format that does not require any "index metadata" to be written. MariaDB Server 10.3 and 10.4 could theoretically be affected by a bug like this, and in fact I know we have some recovery or backup bugs there (with no reproducible test case). Because 10.3 and 10.4 have already reached their End of Life, I will not need to check further.

      Bug#36626203 Unused heap in function Validate_files::check
      This appears to be a clean-up after WL#14008 InnoDB: Make tablespace filename validation optional. I believe that the MariaDB counterpart of that at a conceptual level is MDEV-32027.

      BUG#34951273 : Performance of scanning data_lock_waits worse than expected with read-only trx
      This fixes a regression due to WL#6657 PERFORMANCE_SCHEMA LOCK_DATA), which was introduced in MySQL 8.0 but not in MariaDB.
      Bug#36347408 Parallel read is slow after parition table is read in parallel
      This is a follow-up fix to WL#14283 Parallel create index, which has not been implemented in MariaDB.

      Bug#36292498: Compile MySQL with clang 18
      This fixes some misuse of std::bind. mariadb-backup uses it, but not in a way that would cause clang to complain.

      Bug#36041032 : Setting (debug only) InnoDB system variables causes crash on Debug Server build
      This marks a debug variable innodb_interpreter_output read only. We do not have that in MariaDB.

      Bug#36425219 log_writer_write_buffer must double-check log.write_lsn after reacquiring mutex
      This fixes a bug in the MySQL 8.0 log writer. MariaDB uses a different design, which was last substantially revised in MDEV-14425 and MDEV-27774.

      Bug#36343647 Assertion failure:ibuf0ibuf.cc:3833:ib::fatal (2)
      These correspond to MDEV-15916 and MDEV-29905. The function buf_read_ibuf_merge_pages() was removed in MDEV-19514, but a problem during slow shutdown remained until MDEV-29905 was fixed.

      bug#34800754 Assertion failure: dict0dict.ic:1102:col_index < table->n_cols
      This fixes a debug assertion related to virtual columns in an ALTER TABLE operation that involves setting the AUTO_INCREMENT value. The function dict_table_get_index_on_first_col() was replaced in MDEV-6076. It seems to me that this bug (hard to say exactly which one, because there is no test case) should have been fixed back then, in MariaDB Server 10.2.4.

      Bug#36260722 The value range of innodb_io_capacity_max is changed
      This would make mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff shrink a little bit. Actually, innodb_io_capacity_max had better be declared as a 32-bit unsigned integer, and even then 2³² pages per second would be an insanely large value. However, we do not strictly need this change in MariaDB right now.

      Applicable to MariaDB Server

      Bug#34929814 Double processing of FTS index words with innodb_optimize_fulltext_only
      MDEV-34057 refers to the same bug number, but thiru pointed out that this actually is a different bug, to be fixed in MDEV-34673.

      Bug#36174938 innodb doesn't call fsync on directories after unlink, rename, open(o_create) (fixup, 2)
      The commit message claims that fsync() needs to be called on directories without naming any file system where this is actually beneficial. I filed MDEV-34671 for this, to be addressed some time in the future.

      Attachments

        Issue Links

          Activity

            People

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