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

Merge new release of InnoDB MySQL 5.7.19 to 10.2

    XMLWordPrintable

    Details

      Description

      We should merge the relevant InnoDB fixes from MySQL 5.7.19 to MariaDB 10.2.
      The code diff between 5.7.18 (merged in MDEV-11751) and 5.7.19 for storage/innobase is 1353 lines, so not very much. And not all changes to storage/innobase matter. Here is a complete list of commits:

      68c7d045190 Bug#26243264 ALTER TABLE ON ENCRYPTED TABLE CAUSES FRM OUT OF SYNC AND DECRYPTS DATA
      3e0111b7841 WL#10322: Deprecate innodb_undo_logs in 5.7
      42d0b02f599 WL#9143: Keyring plugin for the Amazon's AWS          Key Management service
      8f1f7aef152 Merge branch 'mysql-5.6' into mysql-5.7
      d9bc5e03d78 Bug #24605783 MYSQL GOT SIGNAL 6 ASSERTION FAILURE
      2c0e565d5a0 Bug #25357789   INNODB: LATCH ORDER VIOLATION DURING TRUNCATE TABLE                         IF INNODB_SYNC_DEBUG ENABLED
      3218379fe95 Bug #24961167       CONCURRENT INSERT FAILS IF TABLE DOES REBUILD
      4ed0bada87e Bug #25332330       COUNT(*) ON INNODB SOMETIMES RETURNS 0
      211b5a249f9 Bug #24960450   CONCURRENT DELETE DOESN'T APPLY DURING TABLE REBUILD
      4f86aca37d5 Bug #25793677   INNODB: FAILING ASSERTION: CLUST_TEMPL_FOR_SEC || LEN
      e608f8ae8a5 Bug#25909965 REMOVE DEPENDENCIS ON LIBSTATOMIC.SO ON SOLARIS
      0b63a699c11 BUG#25365223 ERRORLOG UPDATED WITH NOTES INFORMATION WHEN A REF FKEY ISN'T FOUND IN GRSETUP
      1497d81826c Merge branch 'mysql-5.6' into mysql-5.7
      c728327fe78 Bug #25573565   TABLE REBUILD USES EXCESSIVE MEMORY
      98f389ec23f Bug#25479538  ASSERT:SIZE == SPACE->SIZE DURING BUF_READ_AHEAD_RANDOM
      45c933ac19c Bug #25189192       ERRORS WHEN RESTARTING MYSQL AFTER RENAME TABLE.
      87067434552 Bug #25175249       ASSERTION: (TEMPL->IS_VIRTUAL && !FIELD)                 || (FIELD && FIELD->PREFIX_LEN ? FIELD
      bce4b74f73f Bug #25175249       ASSERTION: (TEMPL->IS_VIRTUAL && !FIELD)                || (FIELD && FIELD->PREFIX_LEN ? FIELD
      ecf5f62697b Bug #25175249       ASSERTION: (TEMPL->IS_VIRTUAL && !FIELD)                || (FIELD && FIELD->PREFIX_LEN ? FIELD
      25695fc6c27 Bug #22963951       REDUCE THE TIME OF LOOKING FOR  MLOG_CHECKPOINT DURING CRASH RECOVERY - Post-push fix
      d15e4c262ab Bug #22963951       REDUCE THE TIME OF LOOKING FOR                 MLOG_CHECKPOINT DURING CRASH RECOVERY
      906f7fa2062 Bug #25080442   PARTITIONED TABLES USE MORE MEMORY IN 5.7 THAN 5.6
      

      Changes that are not applicable to MariaDB 10.2

      MDEV-11487 removed the code for 'internal temporary tables' which was not used in MariaDB, so Bug#25080442 is not present in MariaDB 10.2.3 or later.

      MDEV-12050 removed the Memcached plugin, so the patch for Bug#24605783 is not applicable to MariaDB 10.2.4 or later. (We must take care to revert any additional code that may have been added to 10.0 when merging the fix from 5.6.)

      MDEV-12103 fixed Bug#22963951 in a different way in MariaDB 10.2.5.

      We definitely do not want the ‘fix’ of Bug#25479538 which is simply removing an assertion, which should not fail in the first place. Possibly, the actual bug was fixed by MDEV-11556 in MariaDB 10.1.21 and 10.2.4.

      Bug#25909965 is not applicable, because MDEV-10813 cleaned up InnoDB
      atomics already, and MariaDB does not contain any references to
      libstatomic.

      The fix of Bug#25332330 is also present in 5.6.37 and thus 10.0.32 via the merge of 5.6.37.

      MDEV-9659 already introduced aws_key_management plugin in MariaDB 10.1.13 and 10.2.0, and WL#9143 is only mimicing that for MySQL 5.7.19.

      Bug#26243264 and a memory leak fix in WL#9143 are specific to the MySQL 5.7 implementation of tablespace encryption. MariaDB 10.1 introduced encryption earlier.

      WL#10322: Deprecate innodb_undo_logs in 5.7

      This is preparation for some change in MySQL 8.0. There is no plan to do similar changes in future MariaDB versions. Any deprecation would be done as part of a future MariaDB task, such as MDEV-11657.

      Applicable changes

      Bug#25189192 ERRORS WHEN RESTARTING MYSQL AFTER RENAME TABLE
      This bug should actually be also present in MySQL 5.6, which introduced the SYS_DATAFILES table when introducing support for DATA DIRECTORY. So, maybe we should apply it to 10.0 already.

      Bug#25573565 TABLE REBUILD USES EXCESSIVE MEMORY
      1497d81826c Merge branch 'mysql-5.6' into mysql-5.7
      We got this into 10.0.32 via the merge of 5.6.37. Some follow-up merge resolution is needed for 10.2, for indexed virtual columns.

      BUG#25365223 ERRORLOG UPDATED WITH NOTES INFORMATION WHEN A REF FKEY ISN'T FOUND IN GRSETUP
      This removes useless error log spam when foreign_key_checks=0.

      Bug#25357789 INNODB: LATCH ORDER VIOLATION DURING TRUNCATE TABLE IF INNODB_SYNC_DEBUG ENABLED
      This could fix server hangs in TRUNCATE TABLE. The bug probably was introduced in WL#6501 in MySQL 5.7.2, or in some follow-up fix.

      Bug#25175249 ASSERTION: (TEMPL->IS_VIRTUAL && !FIELD) ∨ (FIELD && FIELD->PREFIX_LEN ? FIELD
      Bug#25793677 INNODB: FAILING ASSERTION: CLUST_TEMPL_FOR_SEC ∨ LEN
      These are follow-up fixes for Bug#23481444 OPTIMISER CALL ROW_SEARCH_MVCC() AND READ THE INDEX APPLIED BY UNCOMMITTED ROWS
      which (as noted in MDEV-11751) already had quite a few follow-up fixes in 5.7.18. It was not merged to MariaDB 10.2.7, so we do not need these follow-up fixes either.
      The Bug#25175249 patch was also backported to 5.6.37.

      We will take the test case from Bug#25793677. The bug did not exist in MariaDB 10.2.

      Fixes for indexed virtual columns

      The following bugs in the InnoDB implementation of indexed virtual columns have been fixed. We will merge these into MariaDB:

      Bug#24960450 CONCURRENT DELETE DOESN'T APPLY DURING TABLE REBUILD
      Bug#24961167 CONCURRENT INSERT FAILS IF TABLE DOES REBUILD

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                Created:
                Updated:
                Resolved: