This repository has been archived by the owner on Nov 24, 2023. It is now read-only.
DM may lost data when resume from error in non GTID mode #1751
Labels
affected-v2.0.2
this issue/BUG affects v2.0.2
affected-v2.0.3
this issue/BUG affects v2.0.3
severity/critical
type/bug
This issue is a bug report
Bug Report
Please answer these questions before submitting your issue. Thanks!
Upstream uses non GTID replication and generates binlog events which contain more than one row changes. Assuming that DM is handling event
e1
, if DM meets error and resumes, some row changes of evente1
may get lost.DM will split event and generate jobs per row changes.
Above 2 jobs are attached with same event position
p0
and table informationt0
. DM will invokeaddJob
sequentially for jobs.In
addJob
, DM willNow if job1 needs flush (may caused by reaching 30s flush interval), after step 5, the checkpoint for the table
t0
is flushed withp0
. If unfortunately SQL of job2 fails executing, after resuming, DM will skipt0
's binlog events whose position <=p0
. So job2 is lost.The text was updated successfully, but these errors were encountered: