Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PT-2340: support MySQL 8.4 #871

Merged
merged 41 commits into from
Nov 14, 2024
Merged

PT-2340: support MySQL 8.4 #871

merged 41 commits into from
Nov 14, 2024

Conversation

svetasmirnova
Copy link
Collaborator

@svetasmirnova svetasmirnova commented Oct 4, 2024

This huge PR adds MySQL 8.4 support to the Percona Toolkit.

  • The contributed code is licensed under GPL v2.0
  • Contributor Licence Agreement (CLA) is signed
  • util/update-modules has been ran
  • Documentation updated
  • Test suite update

- Adjusted sandbox scripts, so they can start MySQL 8.4
- Added MySQL 8.4 configuration file
- Removed empty file sandbox/5.6
- Removed unused files sandbox/set-mysql, sandbox/slave_channels_t.sql, sandbox/jenkins-test
- Removed offensive terminology from the sandbox scripts wherever it is possible
- Fixed status check for 8.4 sandbox
- Removed option "reset" from the usage output, because option itself was removed by 92a3671
- Fixed sandbox/start-sandbox script, so it can start custom setups with 8.4
- Removed offensive terminology from library files and their tests
- Removed unused sandbox/prove2junit.pl
- Added option mysql_ssl to DSN and possibility to have DSN of multiple letters
- Removed all unneeded occuriences of the word "master" in lib
- Removed lib/Percona/Test.pm, lib/Safeguards.pm, t/lib/Safeguards.t, because they are not used anymore
- Removed word "slave" from lib
- Removed runtime.txt after discussion with Anastasia Alexandrova
- Added "use VersionParser" into tests in t/lib when needed
- Removed word master from tests for pt-archiver, pt-config-diff, pt-deadlock-logger, pt-duplicate-key-checker, pt-find, pt-fk-error-logger, pt-heartbeat, pt-index-usage, pt-ioprofile, pt-kill, pt-mysql-summary
- Removed word slave from tests for pt-archiver, pt-config-diff, pt-deadlock-logger, pt-duplicate-key-checker, pt-find, pt-fk-error-logger, pt-heartbeat, pt-index-usage, pt-ioprofile, pt-kill, pt-mysql-summary
- Updated modules for pt-archiver, pt-config-diff, pt-deadlock-logger, pt-duplicate-key-checker, pt-find, pt-fk-error-logger, pt-heartbeat, pt-index-usage, pt-ioprofile, pt-kill, pt-mysql-summary
- Changed mysql_ssl patch, so it is now short option s
- Added a check for existing zombies in t/pt-kill/execute_command.t
- Added bin/pt-galera-log-explainer to .gitignore
- Updated modules and tests for pt-online-schema-change
- Removed typo from lib/MasterSlave.pm
- Updated modules and tests for pt-query-digest, pt-show-grants, pt-slave-delay, pt-slave-find, pt-slave-restart, pt-stalk, pt-summary
- Updated modules and tests for pt-query-digest, pt-show-grants, pt-slave-delay, pt-slave-find, pt-slave-restart, pt-stalk, pt-summary, pt-table-checksum
- Updated modules and tests for pt-table-sync, pt-table-usage, pt-upgrade, pt-variable-advisor
- Fixed staff I broke for 8.0
- Fixed 5.7 tests
- Added deprecation warning to pt-slave-delay
- Re-enabled tests for pt-slave-delay to check the warning
- Disabled pt-slave-delay for MySQL 8.1+
- Created pt-replica-restart. pt-slave-restart kept as symbolic link
- Changed write-user-docs script, so it creates special documentation pages for symbolic links.
- Fixed comparison operators for VersionCheck calls
- Created pt-replica-find. pt-slave-find kept as symbolic link
- Updated documentation
- Fixed typos
- Added tests for MyRocks and TokuDB clustered indexes into t/pt-duplicate-key-checker/clustered_keys.t
- Updated modules
- Updated tests for pt-variable-advisor and lib/VariableAdvisorRules
- Moved data collection for THP from lib/bash/report_system_info.sh to lib/bash/collect_system_info.sh, so pt-summary reports THP status on the machine where samples were collected, not on the machine where an engineer examines samples.
- Adjusted test results, broken due to mysql.component table in PS
- Tests for the minimal SSL support
- Updated util/update-modules, so they don't skip tools with modules, not defined in lib
- Added tests for legacy style heartbeat and checksum tables
- Added test for replica lag check for pt-archiver
- Re-added deprecated slave- options
- Added tests for deprecation warnings and for legacy options for pt-archiver
- Removed practically not supported options --replica-user and --replica-password from pt-archiver, pt-kill, pt-query-digest
- Added legacy source/replica options (master/slave) variants and tests for pt-heartbeat, pt-online-schema-change, pt-replica-find, pt-replica-restart, pt-table-checksum, pt-table-sync
- Updated modules after lib/MasterSlave.pm change
- Adjusted t/pt-deadlock-logger/check_schema_exists.t so it makes sense
- Adjusted pt-variable-advisor, so it reflects current defaults
bin/pt-archiver Outdated Show resolved Hide resolved
- s/slave lag/replica lag/ in reports
bin/pt-replica-find Outdated Show resolved Hide resolved
bin/pt-replica-find Outdated Show resolved Hide resolved
bin/pt-replica-find Outdated Show resolved Hide resolved
bin/pt-replica-find Outdated Show resolved Hide resolved
Copy link
Contributor

@ylacancellera ylacancellera left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have commented what I found already, it's only nitpicks on some missed "slave" wordings. (except the version comparisons, but PT-2390 have been created so I exclude it).

Looks good to me

bin/pt-archiver Outdated Show resolved Hide resolved
bin/pt-heartbeat Outdated Show resolved Hide resolved
bin/pt-kill Outdated Show resolved Hide resolved
bin/pt-query-digest Outdated Show resolved Hide resolved
- s/slave lag/replica lag/ in tests
- reverted rename of COM_REGISTER_SLAVE to COM_REGISTER_REPLICA, because the constant still named COM_REGISTER_SLAVE in 8.4
- removed some slave leftovers from pt-replica-find
- Implemented functions get_replica_name and get_source_name in lib/MasterSlave.pm I did not implement similar functions in other places, because they set other variables as well, not only replica_name or source_name.
- Adjusted tools and tests which fail due to fixed update-modules command
- Adjsted t/pt-table-checksum/basics.t test for 8.0
- Added SSL to 8.4 tests
- Added sleep to t/lib/MasterSlave.t, so it does not fail on fast machines
- Disabled SSL tests on versions earlier than 8.0
@it-percona it-percona temporarily deployed to PT-2340_Support_MySQL_8.4 - percona-toolkit PR #871 November 14, 2024 20:06 — with Render Destroyed
@svetasmirnova svetasmirnova merged commit b6dff19 into 3.x Nov 14, 2024
6 checks passed
@svetasmirnova svetasmirnova deleted the PT-2340_Support_MySQL_8.4 branch November 14, 2024 20:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants