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

Merge applicable changes from InnoDB 8.0.41

Details

    Description

      InnoDB changes to the MySQL 5.7 branch since the mysql-5.7.44 release

      Applicable to MariaDB Server

      Bug#33327093 FK: assertion failure in row_MySQL_pad_col
      This is MDEV-29182.

      Not applicable to MariaDB Server

      Bug#35967676: Compiling 5.7 fails with VS2022
      MariaDB Server is being compiled with the latest and greatest Microsoft Visual Studio, and it is difficult to say when this bug was fixed, or if it ever applied to MariaDB.
      GPL License Exception Update
      This is only changing some license text in source code comments.
      Bug#34929814 Inconsistent FTS state in concurrent scenarios Bug#36347647 Contribution by Tencent: Resiliency issue in fts_sync_commit, follow-up
      This was implemented in MDEV-34057.
      Bug#37039354 Backport Bug#36559642 FTS cleanup on DROP INDEX issue when adding a FULLTEXT index in same transaction
      As noted in MDEV-35170, this had been fixed in MDEV-35183.
      Bug#37039409 Backport Bug#36210202 FTS_DOC_ID comparison incorrect for large values
      This had been fixed in MDEV-33383.
      Bug#33691659 ON DELETE CASCADE with generated column crashes in innobase_get_computed_value
      This is related to MDEV-5800 and FOREIGN KEY constraints. A condition is being added around an invocation of the function innobase_init_vc_templ(). Starting with this change on December 2, 2022 that function is only being used in threads that purge the committed InnoDB transaction history. Better yet, starting with this merge fixup on October 2023 for MDEV-16678, that function does not exist at all. Because the purge of committed transaction history works on one undo log record at a time and does not involve any additional logic around FOREIGN KEY constraints (there would be multiple undo log records written in a transaction if necessary), we can conclude that this bug does not affect MariaDB Server 10.3.38, 10.4.28, 10.5.19, 10.6.12, 10.11.2, or later. I suspect that this condition is related to insufficient meta-data locks (MDL), which had been improved in MDEV-15855 and MDEV-17215 back in 2018.

      InnoDB changes between mysql-8.0.40 and mysql-8.0.41, in addition to the above

      Not applicable to MariaDB Server

      Bug#36879147 FULLTEXT index limits FTS_DOC_ID to max unsigned 32-bit value
      This was fixed in MDEV-19522 in 2021.
      Bug#36796094 Column rename in multi-column foreign key returns error
      There is a test case. This is related to the following error that does not exist in MariaDB:

      ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Columns participating in a foreign key are renamed. Try ALGORITHM=INPLACE.
      

      In MariaDB, the column names in REFERENCES clauses would be adjusted automatically. Likewise, generated column expressions will be adjusted when any base columns are renamed. MySQL would reject that too.
      Side note: MySQL allows ALTER TABLE partitioned_table DISCARD TABLESPACE, but MariadB does not.
      Bug#34633727 fts_get_doc_t::cache not set in fts_reset_get_doc
      This looks like a duplicate of MDEV-18637. The merge of that fix to 10.2 includes a test case to innodb_fts.fulltext3. That test was not applicable to MariaDB Server 10.1, because it does not support indexed virtual columns (MDEV-5800).
      Bug#36511673 MLOG_FILE_EXTEND log record is not redo logged for System tablespace
      MDEV-11556 fixed the recovery of file size changes without introducing any special log record in the first place, by simply tracking changes of FSP_SIZE, on any persistent data file. (Shrinking the system tablespace is covered by MDEV-14795; there is no such feature in MySQL yet.)
      Bug#37139618 perfschema.idx_compare_mems_by_thread_by_event_name test failing rarely
      MariaDB does not seem to include this interface.
      Bug#36765223: performance deterioration caused by incorrect cpu usage statistics
      MariaDB does not include this interface.
      Bug#34946626 Common prefix compression for MLOG_REC_INSERT got accidentally disabled
      This code was rewritten in MariaDB Server in MDEV-12353 and MDEV-21724.
      Bug#33767814 Wrong query result with index_merge query and DESC column in PK
      This was fixed in MDEV-27529 in January 2022.
      Bug#36846567 Inplace ALTER TABLE might cause lost rows if concurrent purge
      Bug#37318367 Inplace ALTER on table with spatial idx might cause lost rows if concurrent purge
      Bug#36846567/Bug#37318367 fixup
      These are related to a parallel index scanner, which does not exist in MariaDB Server.
      Bug#37189985: Crashing and widespread corruption of spatial indexes after INPLACE alter table
      This is apparently related to a parallel index scanner, which does not exist in MariaDB Server.
      Bug#37271715 Assertion failure: dict0stats.cc:456:table->stat_in
      There is no performance_schema.data_locks in MariaDB, and no locks are being broken on DROP or TRUNCATE ever since MDEV-25506 or earlier.
      Bug#36658450 Crash when drop and add primary key with desc
      This seems to have been fixed in MDEV-14119 in August 2020. Descending index columns (MDEV-13756) are not affected by this; the following would only change the SQL statement in the output of the two affected tests:

      diff --git a/mysql-test/suite/innodb/include/alter_table_pk_no_sort.inc b/mysql-test/suite/innodb/include/alter_table_pk_no_sort.inc
      index 61e304a7626..c4476ac6969 100644
      --- a/mysql-test/suite/innodb/include/alter_table_pk_no_sort.inc
      +++ b/mysql-test/suite/innodb/include/alter_table_pk_no_sort.inc
      @@ -268,5 +268,5 @@ drop table t1;
       create table t1(o1 int, o2 int, primary key(o1,o2)) engine = innodb;
       insert into t1 values(1,1),(2,1);
       alter table t1 drop primary key, add column a int unique auto_increment,
      -add primary key(o1,o2,a), algorithm=inplace;
      +add primary key(o1,o2,a desc), algorithm=inplace;
       drop table t1;
      

      Bug #36452528: Assertion failure: row0ins.cc:268:!cursor->index->is_committed()
      This is a bug in the comparison of minimum bounding rectangles of SPATIAL INDEX. This appears to be a regression due to an interface change in MySQL 8.0.1 (WL#9439) followed by a functional change (WL#10827).
      Bug#36004394 Skip instant DDL for empty tables
      This is specific to the MySQL 8.0 implementation of MDEV-11369 and MDEV-15562. MariaDB does not have a concept of a row version; instead, only 2 versions of the clustered index record format are being kept track of: the original and the current one. That said, starting with MDEV-23805 ALTER TABLE in MariaDB does treat empty InnoDB tables specially.
      Bug#34574604 ERROR 1712 (HY000): Index PRIMARY is corrupted
      This fixes a bug in online ALTER TABLE when the table contains indexed virtual columns. Starting with MDEV-13795/MDEV-14332, MariaDB blocks concurrent DML during such operations. Furthermore, the logging of concurrent DML was simplified in MDEV-15250 so that it would occur based on the undo log records at the time of commit.
      Bug#36234681: InnoDB: Failing assertion: result != FTS_INVALID
      This had been fixed in MDEV-23722 back in 2020.
      Bug#36880863 Innodb startup takes longer time in Fil_system::prepare_open_for_business() after the fix for Bug 36808732
      This seems to be yet another regression due to the removal of WL#7142 in MySQL 8.0. In MariaDB Server 10.2 and later, InnoDB will locate data files based on redo log records or the contents of the SYS_TABLES table. Starting with MDEV-32027, MariaDB will avoid opening any data files unless they need to be accessed.
      Bug#35037114 Server crash in old_index != nullptr at my_server_abort
      This is bug in the adaptive hash index, specifically in the function buf_pool_clear_hash_index(), which corresponds to buf_pool_t::clear_hash_index() in MariaDB. There is no buf_block_t::mutex in MariaDB anymore; it had been removed in MDEV-15053.
      This bug turns out to be a regression due to Bug #33601434 InnoDB: AHI-related fields n_fields, n_bytes, left_side should be atomically set. Side note: In MDEV-35049 there would be a single std::atomic<uint32_t> field in buf_block_t for all the AHI parameters, mostly modified by loads and stores.

      Attachments

        Issue Links

          Activity

            There are no comments yet on this issue.

            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.