Uploaded image for project: 'Percona Server'
  1. Percona Server
  2. PS-269

Initial Percona Server port to MySQL 8

    Details

    • Type: Admin & Maintenance Task
    • Status: Done
    • Priority: High
    • Resolution: Done
    • Affects Version/s: 8.0, Not 5.5, Not 5.6, Not 5.7
    • Fix Version/s: 8.0.13-3
    • Component/s: None
    • Labels:
      None

      Description

      COMPLETED
      MySQL 8.0.0 + Percona patches branches, retired: https://github.com/laurynas-biveinis/percona-server/tree/mysql-8.0.0-percona-patches, https://github.com/laurynas-biveinis/percona-server/tree/mysql-8.0.0-percona-patches-clean

      MySQL 8.0.1 + Percona patches branches, retired: https://github.com/laurynas-biveinis/percona-server/tree/mysql-8.0.1-percona-patches, https://github.com/laurynas-biveinis/percona-server/tree/mysql-8.0.1-percona-patches-clean

      MySQL 8.0.2 + Percona patches branch, retired https://github.com/laurynas-biveinis/percona-server/commits/mysql-8.0.2-percona-patches

      MySQL 8.0.3 + Precona patches branch, retired https://github.com/laurynas-biveinis/percona-server/tree/mysql-8.0.3-percona-patches

      MySQL 8.0.4 + Percona Patches branch: https://github.com/laurynas-biveinis/percona-server/tree/mysql-8.0.4-percona-patches

      MySQL 8.0.11 + Percona Patches branch: https://github.com/laurynas-biveinis/percona-server/tree/mysql-8.0.11-percona-patches

      On 5.7 trunk before porting starts:

      LP 8.0 series created

      • set query cache bugs to Won't Fix: bug 1623040, bug 1655830
      • updated statuses for BP-linked upstream bugs

      In the 5.7 porting branch, assuming a port to at least 8.0.4:

      Once MySQL 8.0 is merged:

      • https://dev.mysql.com/worklog/task/?id=8971: remove have_partition.inc from the testcases, WITH_PARTITION_STORAGE_ENGINE preprocessor usage
      • C++11'ize where necessary (Boost unique_ptr -> std::unique_ptr etc)
      • C++11'ize where beneficial (atomics, nullptr, override, auto, static_assert, noexcept, using, const_iterator, raw string literals, pass by value, final etc). Consider using clang-tidy with "modernize" checkers
      • test MTR --no-skip option (http://dev.mysql.com/worklog/task/?id=8036)
      • replace --exec rm -rf dir with force-rmdir in MTR
      • likewise perl snippet at mysql-test/suite/tokudb.backup/t/innodb_use_native_aio_enabled.test
      • use a an error code range for Percona Server-specific codes
      • the resulting InnoDB diff must not have any os_rmb / os_wmb barriers
      • remove #ifdef HAVE_REPLICATION from our diff (f98b7bc5fdfc6777afd548b369b6646c40581eb3)
      • use CR_ client errors instead of hardcoded numbers in the testcase (s/2013/CR_SERVER_LOST etc)

      Once MySQL 8.0.1 is merged:

      • restore MyRocks select_for_update_skip_locked test https://jira.percona.com/browse/MYR-71
      • remove absolute path --plugin-dir feature and replace its uses 95a15b435b88104929d5af9f28917c1bb6e03df0

      Once MySQL 8.0.2 is merged:

      • remove explicit master_info_repository=TABLE and relay_log_info_repository=TABLE settings from the testcases to match the changed defaults

      Once MySQL 8.0.3 is merged:

      • remove any explicit innodb_autoinc_lock_mode=2, log_slave_updates, log_bin, max_allowed_packet < 64M, binlog_format=row settings from the testcases
      • Reconcile our backup locks and upstream LOCK INSTANCE FOR BACKUP. Our backup locks should be authorized by the same BACKUP_ADMIN privilege (PS-5014).
      • Check if our audit API plugins should handle the new MYSQL_AUDIT_AUTHENTICATION_CLASS, add MTR tests for them with caching sha2 user connections
      • For Jenkins trunk Valgrind jobs, create separate ones for small tests and --only-big-test (JEN-957)
      • Setup special MTR suite in Jenkins (JEN-957)

      Once MySQL 8.0.4 is merged:

      • For Jenkins jobs, add -DWITH_ICU=system (JEN-957) -DWITH_ASAN_SCOPE, for MTR --non-parallel-test (JEN-959)
      • See if log_sink_internal should be used for diagnostics
      • Check if some of the Information diagnostics should be printed with System label
      • Check if testcases are present, if not, add: 88161, 88268 (84512), 88323, 88326, 88353

      Once MySQL 8.0.11 is released:

      CI notes:

      • try -DWITH_UBSAN=ON build, add to Jenkins
      • FIPS VM for OpenSSL FIPS mode testing
      • Create separate --only-big-tests trunk job to make the main trunk job smaller (blocked by https://bugs.mysql.com/bug.php?id=87946)
      • Add --test-progress --report-unstable-tests [--sanitize] to MTR invocation (JEN-960)
      • Suites requiring special treatment: max_parts (slow), special (1 mysqld per VM) (JEN-957)

        Smart Checklist

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  laurynas.biveinis Laurynas Biveinis (Inactive)
                  Reporter:
                  laurynas.biveinis Laurynas Biveinis (Inactive)
                • Votes:
                  1 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:

                    Time Tracking

                    Estimated:
                    Original Estimate - Not Specified
                    Not Specified
                    Remaining:
                    Time Spent - 13 weeks, 4 days, 1 hour, 34 minutes Remaining Estimate - 1 hour, 6 minutes
                    1h 6m
                    Logged:
                    Time Spent - 13 weeks, 4 days, 1 hour, 34 minutes Remaining Estimate - 1 hour, 6 minutes
                    13w 4d 1h 34m