-
Bug
-
Resolution: Done
-
Major
-
3.0.9.Final, 3.1.3.Final, 3.2.0.Final, 3.3.0.Alpha1
-
None
-
False
-
-
False
-
-
When configuring the JDBC sink with multiple tasks consuming from a topic with multiple partitions, the events may be duplicated.
When looking at the partition-open-close-flushes.log attachment, we can see that the same partitions are requested to be opened on multiple threads, and later, when the first flush operation is performed, no offsets are flushed despite having received events on tasks 3 and 2, and the flush occurring on task 4.
This seems to indicate that the partition and offset management introduced in DBZ-7946 was not correct when multiple tasks were being used.
The main problem here is that the JDBC sink does not accurately track OffsetMetadata for TopicPartition. If a specific partition is assigned to a task, never receives any changes, and a commit request is observed, the flush writes no offset details, which effectively resets the position, and the events are redelivered.
- links to
-
RHEA-2025:154266 Red Hat build of Debezium 3.2.4 release