Skip to content
This repository has been archived by the owner on Nov 24, 2023. It is now read-only.

relay: fix GTID recover after relay log recovered (#335) #339

Merged
merged 7 commits into from
Oct 28, 2019

Conversation

sre-bot
Copy link

@sre-bot sre-bot commented Oct 28, 2019

cherry-pick #335 to release-1.0


What problem does this PR solve?

MySQL may not save all previous GTID sets in its binlog file as Previous_gtids event in some special scenarios (not confirmed yet, but maybe a bug, ref https://bugs.mysql.com/bug.php?id=93809).

example:

  • the real previous GTID sets: 00c04543-f584-11e9-a765-0242ac120002:1-60
  • GTID sets in Previous_gtids event: 00c04543-f584-11e9-a765-0242ac120002:45-60
  • then the recovered GTID sets will become 00c04543-f584-11e9-a765-0242ac120002:45-60, but this should still be 00c04543-f584-11e9-a765-0242ac120002:1-60.
  • use 00c04543-f584-11e9-a765-0242ac120002:45-60 to request the master is wrong, because this will cause the master to send binlog events in 00c04543-f584-11e9-a765-0242ac120002:1-44. if this events are purged, an error (ERROR 1236 (HY000): The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.) will reported; if this events are not purged, they will be sent again.

What is changed and how it works?

only truncate the Stop of the GTID set intervals, like truncating 00c04543-f584-11e9-a765-0242ac120002:1-60 with 00c04543-f584-11e9-a765-0242ac120002:40-50 will get 00c04543-f584-11e9-a765-0242ac120002:1-50.

Check List

Tests

  • Unit test

Related changes

  • Need to cherry-pick to the release branch
  • Need to be included in the release note

@sre-bot sre-bot added priority/normal Minor change, requires approval from ≥1 primary reviewer priority/release-blocker This PR blocks a release. Please review it ASAP. needs-update-release-note This PR should be added into release notes. Remove this label once the release notes are updated type/bug-fix Bug fix type/cherry-pick This PR is just a cherry-pick (backport) labels Oct 28, 2019
@codecov
Copy link

codecov bot commented Oct 28, 2019

Codecov Report

❗ No coverage uploaded for pull request base (release-1.0@1641c68). Click here to learn what that means.
The diff coverage is 100%.

@@               Coverage Diff                @@
##             release-1.0       #339   +/-   ##
================================================
  Coverage               ?   60.0973%           
================================================
  Files                  ?        135           
  Lines                  ?      15197           
  Branches               ?          0           
================================================
  Hits                   ?       9133           
  Misses                 ?       5170           
  Partials               ?        894

@WangXiangUSTC WangXiangUSTC added the status/LGT1 One reviewer already commented LGTM label Oct 28, 2019
@WangXiangUSTC
Copy link
Contributor

LGTM

Copy link
Contributor

@amyangfei amyangfei left a comment

Choose a reason for hiding this comment

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

LGTM

@csuzhangxc csuzhangxc merged commit 52c2d99 into pingcap:release-1.0 Oct 28, 2019
@csuzhangxc csuzhangxc added already-update-release-note The release note is updated. Add this label once the release note is updated and removed needs-update-release-note This PR should be added into release notes. Remove this label once the release notes are updated labels Nov 1, 2019
@WangXiangUSTC WangXiangUSTC added status/LGT2 Two reviewers already commented LGTM, ready for merge and removed status/LGT1 One reviewer already commented LGTM labels Nov 4, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
already-update-release-note The release note is updated. Add this label once the release note is updated priority/normal Minor change, requires approval from ≥1 primary reviewer priority/release-blocker This PR blocks a release. Please review it ASAP. status/LGT2 Two reviewers already commented LGTM, ready for merge type/bug-fix Bug fix type/cherry-pick This PR is just a cherry-pick (backport)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants