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

Bug Report: VReplication unable to complete/terminate on MySQL error 1180 (ER_ERROR_DURING_COMMIT) #17248

Closed
shlomi-noach opened this issue Nov 18, 2024 · 0 comments · Fixed by #17249

Comments

@shlomi-noach
Copy link
Contributor

Overview of the Issue

If MySQL returns error code 1180 (ER_ERROR_DURING_COMMIT), the binlog connection auto-closes:

if err != nil {
LogError("COMMIT failed w/ error", err)
dc.dbConn.Close()
}

And it is then subsequently unable to setMessage in:

if err != nil {
if err := vr.setMessage(err.Error()); err != nil {
binlogplayer.LogError("Failed to set error state", err)
}

because it uses that same (now closed) connection.

This then means vreplication does not persist the failure, and keeps on retrying the same step infinitely (or until the MySQL response is different from 1180).

Reproduction Steps

Return error code 1180 from MySQL during vreplication. This is a rare code which I've only encountered during some internal testing.

Binary Version

all

Operating System and Environment details

any

Log Fragments

No response

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

Successfully merging a pull request may close this issue.

1 participant