-
Notifications
You must be signed in to change notification settings - Fork 289
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
owner: check if the checkpoint ts is less then gc safe time when create the changefeed #1045
Conversation
/run-integration-tests |
Could you move this forward? tikv/pd#3136 does not block this fix I think. |
If tikv/pd#3136 is not fixed, cdc will throw an error when create a changefeed, because cdc can't get gc safetime before the gc worker running first time. |
/run-all-tests |
/run-all-tests |
/run-all-tests |
@amyangfei PTAL @liuzix |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
EnableOldValue: false, | ||
CaseSensitive: true, | ||
EnableOldValue: false, | ||
CheckGCSafePoint: true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why add flag? I think it must be checked all the time.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cause of the bug in PD (tikv/pd#3128), if TiCDC(4.0.9+) tries to connect to a TiKV(which of the version is less than 4.0.8), the GC safe point check will fail. so we add a flag to skip the check
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about checking GC safepoint by cluster version automatically?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not strict I think. the version check is not correct all the time(for example : the version of a binary built in the master branch may be 4.0.x-xxx-dirty)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
and multi-version components in one cluster are not recommended for production. I think it's enough that we just make sure that the cdc is able to connect to the old version tikv
LGTM |
/merge |
/run-all-tests |
Codecov Report
@@ Coverage Diff @@
## master #1045 +/- ##
================================================
+ Coverage 36.4740% 36.5075% +0.0335%
================================================
Files 109 110 +1
Lines 11367 11373 +6
================================================
+ Hits 4146 4152 +6
+ Misses 6800 6799 -1
- Partials 421 422 +1 |
Signed-off-by: ti-srebot <[email protected]>
cherry pick to release-4.0 in PR #1097 |
…te the changefeed (#1045) (#1097) Signed-off-by: ti-srebot <[email protected]>
What problem does this PR solve?
check if the checkpoint ts is less then gc safe time when create the changefeed
fix #1014
Blocked By tikv/pd#3128 tikv/pd#3135 tikv/pd#3136 tikv/pd#3173
Check List
Tests
the
changefeed_error
test in the current integration test is already do good.try to follow the step in CDC should not work if changefeed's checkpoint is earlier than current gc safepoint #1014, we can see the owner throw an error immediately for now.
Release note