Skip to content

PMM-14594 Backup compatibility fix.#5395

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

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

Conversation

@JiriCtvrtka
Copy link
Copy Markdown
Contributor

@JiriCtvrtka JiriCtvrtka commented May 21, 2026

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
Copy link
Copy Markdown

codecov Bot commented May 21, 2026

Codecov Report

❌ Patch coverage is 75.30864% with 20 lines in your changes missing coverage. Please review.
✅ Project coverage is 43.15%. Comparing base (7fccd1e) to head (97c5373).
⚠️ Report is 1 commits behind head on v3.

Files with missing lines Patch % Lines
managed/services/backup/compatibility_helpers.go 75.30% 19 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##               v3    #5395      +/-   ##
==========================================
- Coverage   43.22%   43.15%   -0.08%     
==========================================
  Files         413      413              
  Lines       42279    42213      -66     
==========================================
- Hits        18277    18216      -61     
  Misses      22134    22134              
+ Partials     1868     1863       -5     
Flag Coverage Δ
managed 42.31% <75.30%> (-0.03%) ⬇️

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

☔ View full report in Codecov by Sentry.
📢 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.

Copy link
Copy Markdown
Contributor

Copilot AI commented May 21, 2026

@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
mysqlMaxVersion: "8.0.22",
xtrabackupMinVersion: "8.0.14",
xtrabackupMaxVersion: "9.0",
xtrabackupMaxVersion: "8.1.0",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

if later all those strings are converted into version.Version - isn't it better to declare them as version.Version already and avoid conversion on func calls?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes, it makes sense to change it this way. I only fixed the logic, but this refactor simplifies it nicely.

@JiriCtvrtka JiriCtvrtka requested a review from maxkondr May 25, 2026 12:07
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.

4 participants