Fix mixed version topology discovery - #1760
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds per-server MySQL version detection during upstream topology discovery, preventing incompatible replication syntax in mixed-version deployments.
Changes:
- Detects each visited server’s version before querying replication status.
- Propagates topology-discovery errors during replication restart.
- Adds mixed-version, MariaDB, and error-path tests.
Show a summary per file
| File | Description |
|---|---|
go/mysql/utils.go |
Uses each topology node’s version for replication terminology. |
go/mysql/utils_test.go |
Tests mixed-version discovery and failures. |
go/logic/inspect.go |
Returns replication-status discovery errors. |
Review details
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
- Files reviewed: 3/3 changed files
- Comments generated: 0
- Review effort level: Balanced
ericyan
approved these changes
Aug 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR adds per-server MySQL version detection while gh-ost walks the inspector’s upstream replication chain, ensuring that each visited server uses the appropriate replication terminology.
gh-ostpreviously selected replication terminology using the inspector's MySQL version and reused that version while recursively walking upstream.In a mixed-version topology, this could issue syntax for one MySQL version against another. For example, an 8.0 inspector caused gh-ost to run
SHOW SLAVE STATUSagainst an 8.4 primary, where that statement is no longer supported.script/cibuildreturns with no formatting errors, build errors or unit test errors.