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

Changefeed stuck when overwriteTs resume a changefeeed with a forward checkpointTs if changefeed is enable syncpoint #12055

Open
hongyunyan opened this issue Feb 8, 2025 · 1 comment
Assignees
Labels
affects-6.5 This bug affects the 6.5.x(LTS) versions. affects-7.1 This bug affects the 7.1.x(LTS) versions. affects-7.5 This bug affects the 7.5.x(LTS) versions. area/ticdc Issues or PRs related to TiCDC. may-affects-5.4 may-affects-6.1 may-affects-8.1 may-affects-8.5 report/customer Customers have encountered this bug. severity/major type/bug The issue is confirmed as a bug.

Comments

@hongyunyan
Copy link
Collaborator

What did you do?

  1. start a changefeed with syncpoint
  2. pause the changefeed
  3. resume the changefeed with a forward checkpointTs
  4. check the changefeed's checkpointTs and resolvedTs

What did you expect to see?

the checkpointTs and resolvedTs can be forwarded normally

What did you see instead?

the changefeed is stuck

Versions of the cluster

Upstream TiDB cluster version (execute SELECT tidb_version(); in a MySQL client):

(paste TiDB cluster version here)

Upstream TiKV version (execute tikv-server --version):

(paste TiKV version here)

TiCDC version (execute cdc version):

v6.5, v7.1, v7.5
@hongyunyan hongyunyan added area/ticdc Issues or PRs related to TiCDC. type/bug The issue is confirmed as a bug. labels Feb 8, 2025
@hongyunyan hongyunyan self-assigned this Feb 8, 2025
@asddongmen
Copy link
Contributor

The root cause lies in the fact that the user enabled the syncpoint fuction. When resuming a changefeed, the initial syncpoint was set to the changefeed’s resolvedTs.

This could lead to issues when resuming a changefeed with a overwrite-checkpointTs larger than its old resolvedTs. (In this case, the overwrite-checkpointTs is 455573074482299058 and the old resolvedTs is 455573074482299057)

Because in the handlerBarrier() method, the globalBarrier is blocked by the syncpointTs, so the changefeed can never advances.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects-6.5 This bug affects the 6.5.x(LTS) versions. affects-7.1 This bug affects the 7.1.x(LTS) versions. affects-7.5 This bug affects the 7.5.x(LTS) versions. area/ticdc Issues or PRs related to TiCDC. may-affects-5.4 may-affects-6.1 may-affects-8.1 may-affects-8.5 report/customer Customers have encountered this bug. severity/major type/bug The issue is confirmed as a bug.
Projects
None yet
Development

No branches or pull requests

3 participants