Skip to content

DM will report error when upstream MySQL has no data change #7037

@lance6716

Description

@lance6716

What did you do?

When upstream has no data and enables GTID, its binlog position is at (mysql-bin.000001, 154) and has empty GTID set.

Then if user starts an all mode task...

[2022/09/09 06:17:52.285 +00:00] [INFO] [subtask.go:371] ["unit process returned"] [subtask=test-infra] [unit=Load] [stage=Finished] [status="{\"progress\":\"100.00 %\",\"metaBinlog\":\"(mysql-bin.000001, 154)\"}"]
[2022/09/09 06:17:52.285 +00:00] [INFO] [subtask.go:382] ["switching to next unit"] [subtask=test-infra] [unit=Load]
...
[2022/09/09 06:17:52.734 +00:00] [WARN] [syncer.go:3811] ["fail to get gtids for global location"] [task=test-infra] [unit="binlog replication"] [pos="position: (mysql-bin.000001, 154), gtid-set: "] [error="invalid position (mysql-bin.000001, 154) or GTID not enabled in upstream"] [errorVerbose="invalid position (mysql-bin.000001, 154) or GTID not enabled in upstream\ngithub.com/pingcap/tiflow/dm/pkg/binlog/reader.GetGTIDsForPosFromStreamer\n\tgithub.com/pingcap/tiflow/dm/pkg/binlog/reader/util.go:129\ngithub.com/pingcap/tiflow/dm/syncer.(*Syncer).adjustGlobalPointGTID\n\tgithub.com/pingcap/tiflow/dm/syncer/syncer.go:3809\ngithub.com/pingcap/tiflow/dm/syncer.(*Syncer).Run\n\tgithub.com/pingcap/tiflow/dm/syncer/syncer.go:1612\ngithub.com/pingcap/tiflow/dm/syncer.(*Syncer).Process\n\tgithub.com/pingcap/tiflow/dm/syncer/syncer.go:697\nruntime.goexit\n\truntime/asm_amd64.s:1571"]
[2022/09/09 06:17:52.736 +00:00] [INFO] [syncer.go:1501] ["received ungraceful exit ctx, exit now"] [task=test-infra] [unit="binlog replication"]
[2022/09/09 06:17:52.737 +00:00] [INFO] [subtask.go:371] ["unit process returned"] [subtask=test-infra] [unit=Sync] [stage=Paused] [status="{\"syncerBinlog\":\"(mysql-bin.000001, 154)\",\"binlogType\":\"remote\"}"]
[2022/09/09 06:17:52.737 +00:00] [ERROR] [subtask.go:392] ["unit process error"] [subtask=test-infra] [unit=Sync] ["error information"="ErrCode:50000 ErrClass:\"not-set\" ErrScope:\"not-set\" ErrLevel:\"high\" Message:\"invalid position (mysql-bin.000001, 154) or GTID not enabled in upstream\" "]

What did you expect to see?

No response

What did you see instead?

No response

Versions of the cluster

master

current status of DM cluster (execute query-status <task-name> in dmctl)

(paste current status of DM cluster here)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions