Skip to content

PMM-14594 Backup compatibility fix.#5395

Open
JiriCtvrtka wants to merge 33 commits into
v3from
PMM-14594-backup-compatibility
Open

PMM-14594 Backup compatibility fix.#5395
JiriCtvrtka wants to merge 33 commits into
v3from
PMM-14594-backup-compatibility

Conversation

@JiriCtvrtka

@JiriCtvrtka JiriCtvrtka commented May 21, 2026

Copy link
Copy Markdown
Contributor

PMM-14594

FB: Percona-Lab/pmm-submodules#4368

  • Fixed MySQL backup compatibility checks for MySQL 8.4 LTS by allowing Percona XtraBackup 8.4.x with MySQL 8.4.x.
  • Kept existing MySQL 8.0.22+ behavior: XtraBackup 8.0.x must have the same or newer core version and stay below 8.1.
  • Improved incompatible XtraBackup error messages so they explain which XtraBackup family/version should be used.
  • Added unit coverage for MySQL 8.4 positive/negative compatibility cases and equivalence tests to ensure the refactor preserves existing behavior.
  • Updated MySQL backup prerequisites documentation with the MySQL-to-XtraBackup compatibility matrix.

@codecov

codecov Bot commented May 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 43.73%. Comparing base (29af54e) to head (b337cfd).

Additional details and impacted files
@@            Coverage Diff             @@
##               v3    #5395      +/-   ##
==========================================
+ Coverage   43.46%   43.73%   +0.27%     
==========================================
  Files         413      413              
  Lines       42928    42409     -519     
==========================================
- Hits        18659    18549     -110     
+ Misses      22393    22051     -342     
+ Partials     1876     1809      -67     
Flag Coverage Δ
managed 43.02% <100.00%> (+0.15%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@JiriCtvrtka

Copy link
Copy Markdown
Contributor Author

@copilot review

…ide caution admonition

Agent-Logs-Url: https://github.com/percona/pmm/sessions/26f00a58-ad66-4a7b-8e9a-573f1cef3d41

Co-authored-by: JiriCtvrtka <62988319+JiriCtvrtka@users.noreply.github.com>
@it-percona-cla

Copy link
Copy Markdown
Contributor

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ JiriCtvrtka
❌ Copilot
You have signed the CLA already but the status is still pending? Let us recheck it.

Copilot AI commented May 21, 2026

Copy link
Copy Markdown
Contributor

@copilot review

Reviewed the changes. The core logic looks correct:

  • maxAlignedXtrabackupVersion (9.0) properly replaced with bounded version constants (mysql81Version, mysql84Version, mysql85Version)
  • Compatibility matrix entries for pre-8.0.22 MySQL now correctly use 8.1.0 as the XtraBackup upper bound instead of 9.0
  • MySQL 8.4.x → XtraBackup 8.4.x mapping is correctly implemented
  • Error messages are now actionable with specific guidance per version range
  • Tests cover all new paths including MySQL 8.4 + XtraBackup 8.4 compatibility

One documentation formatting issue was found and fixed in commit 1d0cd0e: the version compatibility table and the XtraBackup 8.4 note were placed outside the caution admonition block. They are now properly indented inside it.

@JiriCtvrtka JiriCtvrtka marked this pull request as ready for review May 22, 2026 11:43
@JiriCtvrtka JiriCtvrtka requested review from a team as code owners May 22, 2026 11:43
@JiriCtvrtka JiriCtvrtka requested review from 4nte, ademidoff and maxkondr and removed request for a team May 22, 2026 11:43
Comment thread managed/services/backup/compatibility_helpers.go Outdated
@JiriCtvrtka JiriCtvrtka requested a review from maxkondr May 25, 2026 12:07
Comment thread managed/services/backup/compatibility_helpers.go
@JiriCtvrtka JiriCtvrtka requested a review from ademidoff June 2, 2026 13:31
return nil
}

switch mysqlXtrabackupBandFor(mysqlVersion) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Minor / non-blocking: the band is computed twice on the incompatible path. mysqlAndXtrabackupCoreVersionsCompatible (line 203) already calls mysqlXtrabackupBandFor internally, and this switch calls it again. The cost is negligible and the code reads fine as-is, so this is just a note — if you want to tidy it up, you could compute the band once and reuse it for both the compatibility check and the error switch.

@JiriCtvrtka

Copy link
Copy Markdown
Contributor Author

@copilot review and verify if #5395 (comment) is addressed.

@JiriCtvrtka

Copy link
Copy Markdown
Contributor Author

@copilot review and verify if #5395 (comment) is addressed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Documentation changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants