You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ji...@apache.org on 2024/08/09 02:00:25 UTC

(flink-cdc) branch master updated: [hotfix][cdc-connector][mongodb] Fix unstable test cases for snapshot back-filling (#3506)

This is an automated email from the ASF dual-hosted git repository.

jiabaosun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink-cdc.git


The following commit(s) were added to refs/heads/master by this push:
     new b937db25d [hotfix][cdc-connector][mongodb] Fix unstable test cases for snapshot back-filling (#3506)
b937db25d is described below

commit b937db25d5431d8cd5894b393ec7d4d7531c6fc2
Author: yuxiqian <34...@users.noreply.github.com>
AuthorDate: Fri Aug 9 10:00:21 2024 +0800

    [hotfix][cdc-connector][mongodb] Fix unstable test cases for snapshot back-filling (#3506)
---
 .../connectors/mongodb/source/MongoDBParallelSourceITCase.java   | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mongodb-cdc/src/test/java/org/apache/flink/cdc/connectors/mongodb/source/MongoDBParallelSourceITCase.java b/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mongodb-cdc/src/test/java/org/apache/flink/cdc/connectors/mongodb/source/MongoDBParallelSourceITCase.java
index 25918fd8b..0595f6b5a 100644
--- a/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mongodb-cdc/src/test/java/org/apache/flink/cdc/connectors/mongodb/source/MongoDBParallelSourceITCase.java
+++ b/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mongodb-cdc/src/test/java/org/apache/flink/cdc/connectors/mongodb/source/MongoDBParallelSourceITCase.java
@@ -468,6 +468,15 @@ public class MongoDBParallelSourceITCase extends MongoDBSourceTestBase {
                     mongoCollection.updateOne(
                             Filters.eq("cid", 2000L), Updates.set("address", "Pittsburgh"));
                     mongoCollection.deleteOne(Filters.eq("cid", 1019L));
+
+                    // Rarely happens, but if there's no operation or heartbeat events between
+                    // watermark #a (the ChangeStream opLog caused by the last event in this hook)
+                    // and watermark #b (the calculated high watermark that limits the bounded
+                    // back-filling stream fetch task), the last event of hook will be missed since
+                    // back-filling task reads between [loW, hiW) (high watermark not included).
+                    // Workaround: insert a dummy event in another collection to forcefully push
+                    // opLog forward.
+                    database.getCollection("customers_1").insertOne(new Document());
                 };
 
         switch (hookType) {