Frequently asked questions and solutions for Data Ingestion jobs powered by Flink CDC.
Quick reference
| Symptom | Phase | Severity | Link |
|---|---|---|---|
JobManager OOM with high SnapshotSplits metric values |
Snapshot | Critical | FAQ 1 |
| TaskManager OOM when few shards remain | Snapshot | Critical | FAQ 3 |
| JobManager OOM on state restoration during incremental reading | Incremental | Critical | FAQ 2 |
No new data after a lock-free schema change with pt-osc |
Schema change | High | FAQ 4 |
| Transform column type mismatch after a lock-free schema change | Schema change | High | FAQ 5 |
| Job fails to restore from a pre-schema-change savepoint | State recovery | High | FAQ 6 |
| Binlog purged during the snapshot phase causes sync failure | Binlog retention | High | FAQ 7 |
Snapshot phase
FAQ 1: JobManager OOM during the snapshot phase
Severity: Critical | Phase: Snapshot | Affected versions: All VVR engine versions
Symptom
-
The job restarts repeatedly during the snapshot phase.
-
The JobManager logs contain an
OutOfMemoryError(OOM) stack trace. -
On the Alarm tab, the
Num of remaining SnapshotSplitsandNum of processed SnapshotSplitsmetrics show exceptionally high values.
Cause
During the snapshot phase, the MySQL source persists all table shard metadata to the Flink job's state. If the job handles a large volume of data or uses very small shard sizes, the JobManager creates an excessive number of shards, which exhausts its available memory.
Solution
-
Increase the memory resources allocated to the JobManager.
-
Adjust the following parameters to increase the JobManager's heap and off-heap memory:
-
jobmanager.memory.heap.size -
jobmanager.memory.off-heap.size
-
FAQ 3: TaskManager OOM near the end of the snapshot phase
Severity: Critical | Phase: Snapshot | Affected versions: All VVR engine versions
Symptom
-
The TaskManager runs out of memory late in the snapshot phase, typically when only a small number of shards remain.
-
Searching the TaskManager logs for
using select statementreveals that the last unbounded query involves a very large volume of data.
Cause
Prolonged data reading during the snapshot phase causes incremental data to accumulate in the final shards. When the TaskManager processes these large accumulated shards, it runs out of memory.
Solution
-
Set the following option:
scan.incremental.snapshot.unbounded-chunk-first.enabled: true -
Re-run the snapshot.
Incremental phase
FAQ 2: JobManager OOM during state restoration in the incremental phase
Severity: Critical | Phase: Incremental | Affected versions: VVR 11.1 or earlier
Symptom
-
The job enters the incremental phase but fails during state restoration.
-
The JobManager logs show an OOM.
Cause
VVR 11.1 and earlier versions may not properly clean up persisted table schema information from the job's state after transitioning to the incremental phase. This leftover schema data accumulates and causes an OOM when the job restores from a checkpoint.
Solution
-
Upgrade to VVR 11.2 or later.
Schema change
FAQ 4: No new data after a lock-free schema change with pt-osc
Severity: High | Phase: Schema change | Affected versions: VVR 11.1 or earlier
Symptom
-
The job continues running without restarting after a lock-free table schema change.
-
The
CurrentFetchTimeLagmetric progresses as expected, indicating that data is being fetched. -
The MySQL source stops producing new data and the
CurrentEmitTimeLagmetric stops updating.
Cause
VVR 11.1 and earlier versions cannot correctly handle DDL events generated by lock-free schema change tools such as pt-osc, which causes the data pipeline to stall.
Solution
-
Upgrade to VVR 11.2 or later.
-
Set the following option:
scan.parse.online.schema.changes.enabled: true
FAQ 5: Transform column type mismatch after a lock-free schema change
Severity: High | Phase: Schema change | Affected versions: VVR 11.1 or earlier
Symptom
-
The job unexpectedly restarts following a lock-free table schema change (for example, using
pt-osc). -
The Transform operator logs indicate a column type mismatch error.
Cause
In VVR 11.1, if a significant volume of data is inserted into a table during a lock-free schema change, the engine may generate an unparsable event.
Solution
-
Upgrade to VVR 11.2 or later.
-
Perform a stateful restart from a savepoint that was created before the lock-free schema change.
State recovery
FAQ 6: Job fails to restore from a pre-schema-change savepoint
Severity: High | Phase: State recovery | Affected versions: VVR 11.1 or earlier
Symptom
-
A stateful restart from a savepoint created before a table schema change fails.
-
The error message indicates a table schema mismatch exception while consuming binary logs.
Cause
VVR 11.1 and earlier versions do not support stateful restarts from savepoints that contain an incompatible table schema.
Solution
-
Upgrade to VVR 11.2 or later.
-
After the upgrade, restart the job from a pre-schema-change savepoint.
Binlog retention
FAQ 7: Binlog purged during the snapshot phase causes sync failure
Severity: High | Phase: Snapshot / Incremental | Affected versions: All VVR engine versions
Symptom
-
The Flink CDC job fails during the snapshot phase with an error indicating that the required binary log position no longer exists or has been purged.
Cause
A Flink CDC job operates in two sequential phases with different binary log consumption patterns:
-
Snapshot phase: Reads historical data and replays relatively older binary log entries. If the snapshot phase takes a long time, MySQL may purge the binary log files that the job still needs before the snapshot completes. This causes the job to fail because the required log position is no longer available.
-
Incremental phase: Reads the most recent binary log entries in near real time. Because the incremental phase always tracks the latest log position, it is generally not affected by standard binary log purge policies.
Solution
-
Check whether your job is currently in the snapshot phase or the incremental phase by reviewing the job monitoring metrics (for example, the
Num of remaining SnapshotSplitsmetric: a value greater than zero indicates the job is still in the snapshot phase). -
If the job fails in the snapshot phase due to binary log purge, do one or both of the following:
-
Extend the binary log retention period on your MySQL instance to cover the expected snapshot duration:
-
MySQL 5.7 and earlier: set
expire_logs_daysto a sufficient number of days. -
MySQL 8.0 and later: set
binlog_expire_logs_secondsto a sufficient number of seconds.
-
-
Reduce snapshot duration by performing a stateless restart and increasing the job parallelism. A higher degree of parallelism speeds up the snapshot phase, reducing the window during which binary logs can be purged.
-