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

lidongdai pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new bf9be04805 [Fix][Zeta] Stabilize flaky CI tests for unit-test and 
jdbc-connectors-it-part-7 (#10527)
bf9be04805 is described below

commit bf9be04805115fc856344741414b097a21497a88
Author: yzeng1618 <[email protected]>
AuthorDate: Sat Feb 28 21:06:33 2026 +0800

    [Fix][Zeta] Stabilize flaky CI tests for unit-test and 
jdbc-connectors-it-part-7 (#10527)
---
 .../seatunnel/jdbc/JdbcMySqlSaveModeCatalogIT.java |  2 ++
 .../seatunnel/jdbc/JdbcMysqlSplitIT.java           |  2 ++
 .../starter/seatunnel/SeaTunnelConnectorTest.java  |  9 ++++++-
 .../engine/server/CoordinatorServiceTest.java      | 28 ++++++++++++++++++----
 4 files changed, 35 insertions(+), 6 deletions(-)

diff --git 
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-7/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcMySqlSaveModeCatalogIT.java
 
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-7/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcMySqlSaveModeCatalogIT.java
index a93c11bd05..dff5a43246 100644
--- 
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-7/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcMySqlSaveModeCatalogIT.java
+++ 
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-7/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcMySqlSaveModeCatalogIT.java
@@ -29,6 +29,7 @@ import org.apache.seatunnel.e2e.common.TestSuiteBase;
 import org.apache.seatunnel.e2e.common.container.ContainerExtendedFactory;
 import org.apache.seatunnel.e2e.common.junit.TestContainerExtension;
 
+import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
@@ -195,6 +196,7 @@ public class JdbcMySqlSaveModeCatalogIT extends 
TestSuiteBase implements TestRes
     }
 
     @Override
+    @AfterAll
     public void tearDown() throws Exception {
         if (mysql_container != null) {
             mysql_container.close();
diff --git 
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-7/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcMysqlSplitIT.java
 
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-7/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcMysqlSplitIT.java
index 52fb9fff4c..0cace242c2 100644
--- 
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-7/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcMysqlSplitIT.java
+++ 
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-7/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcMysqlSplitIT.java
@@ -38,6 +38,7 @@ import org.apache.seatunnel.e2e.common.TestResource;
 import org.apache.seatunnel.e2e.common.TestSuiteBase;
 
 import org.jetbrains.annotations.NotNull;
+import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
@@ -549,6 +550,7 @@ public class JdbcMysqlSplitIT extends TestSuiteBase 
implements TestResource {
     }
 
     @Override
+    @AfterAll
     public void tearDown() throws Exception {
         if (mysql_container != null) {
             mysql_container.close();
diff --git 
a/seatunnel-e2e/seatunnel-core-e2e/seatunnel-starter-e2e/src/test/java/org/apache/seatunnel/core/starter/seatunnel/SeaTunnelConnectorTest.java
 
b/seatunnel-e2e/seatunnel-core-e2e/seatunnel-starter-e2e/src/test/java/org/apache/seatunnel/core/starter/seatunnel/SeaTunnelConnectorTest.java
index 2997b2c817..da0dc9f7c2 100644
--- 
a/seatunnel-e2e/seatunnel-core-e2e/seatunnel-starter-e2e/src/test/java/org/apache/seatunnel/core/starter/seatunnel/SeaTunnelConnectorTest.java
+++ 
b/seatunnel-e2e/seatunnel-core-e2e/seatunnel-starter-e2e/src/test/java/org/apache/seatunnel/core/starter/seatunnel/SeaTunnelConnectorTest.java
@@ -269,7 +269,14 @@ public class SeaTunnelConnectorTest extends TestSuiteBase 
implements TestResourc
             throws IOException, InterruptedException {
         Container.ExecResult execResult = 
container.executeConnectorCheck(case1);
         Assertions.assertEquals(0, execResult.getExitCode());
-        Assertions.assertTrue(StringUtils.isBlank(execResult.getStderr()));
+        String stderrWithoutSlf4jNoise =
+                
Arrays.stream(StringUtils.defaultString(execResult.getStderr()).split("\\R"))
+                        .map(String::trim)
+                        .filter(StringUtils::isNotBlank)
+                        .filter(line -> !line.startsWith("SLF4J:"))
+                        .collect(Collectors.joining(System.lineSeparator()));
+        Assertions.assertTrue(
+                StringUtils.isBlank(stderrWithoutSlf4jNoise), 
stderrWithoutSlf4jNoise);
         log.info(execResult.getStdout());
         return execResult;
     }
diff --git 
a/seatunnel-engine/seatunnel-engine-server/src/test/java/org/apache/seatunnel/engine/server/CoordinatorServiceTest.java
 
b/seatunnel-engine/seatunnel-engine-server/src/test/java/org/apache/seatunnel/engine/server/CoordinatorServiceTest.java
index 6edff62aab..ab488b2dd3 100644
--- 
a/seatunnel-engine/seatunnel-engine-server/src/test/java/org/apache/seatunnel/engine/server/CoordinatorServiceTest.java
+++ 
b/seatunnel-engine/seatunnel-engine-server/src/test/java/org/apache/seatunnel/engine/server/CoordinatorServiceTest.java
@@ -64,19 +64,27 @@ import static org.awaitility.Awaitility.await;
 public class CoordinatorServiceTest {
     @Test
     public void testMasterNodeActive() {
+        String clusterName =
+                
TestUtils.getClusterName("CoordinatorServiceTest_testMasterNodeActive");
         HazelcastInstanceImpl instance1 =
-                SeaTunnelServerStarter.createHazelcastInstance(
-                        
TestUtils.getClusterName("CoordinatorServiceTest_testMasterNodeActive"));
+                createHazelcastInstanceWithJoinPortTryCount(clusterName, 100);
         HazelcastInstanceImpl instance2 =
-                SeaTunnelServerStarter.createHazelcastInstance(
-                        
TestUtils.getClusterName("CoordinatorServiceTest_testMasterNodeActive"));
+                createHazelcastInstanceWithJoinPortTryCount(clusterName, 100);
 
         SeaTunnelServer server1 =
                 
instance1.node.getNodeEngine().getService(SeaTunnelServer.SERVICE_NAME);
         SeaTunnelServer server2 =
                 
instance2.node.getNodeEngine().getService(SeaTunnelServer.SERVICE_NAME);
 
-        Assertions.assertTrue(server1.isMasterNode());
+        await().atMost(20000, TimeUnit.MILLISECONDS)
+                .untilAsserted(
+                        () -> {
+                            Assertions.assertEquals(2, 
instance1.getCluster().getMembers().size());
+                            Assertions.assertEquals(2, 
instance2.getCluster().getMembers().size());
+                            Assertions.assertTrue(server1.isMasterNode());
+                            Assertions.assertFalse(server2.isMasterNode());
+                        });
+
         CoordinatorService coordinatorService1 = 
server1.getCoordinatorService();
         Assertions.assertTrue(coordinatorService1.isCoordinatorActive());
 
@@ -100,6 +108,16 @@ public class CoordinatorServiceTest {
         instance2.shutdown();
     }
 
+    private HazelcastInstanceImpl createHazelcastInstanceWithJoinPortTryCount(
+            String clusterName, int joinPortTryCount) {
+        SeaTunnelConfig seaTunnelConfig = 
ConfigProvider.locateAndGetSeaTunnelConfig();
+        seaTunnelConfig.getHazelcastConfig().setClusterName(clusterName);
+        seaTunnelConfig
+                .getHazelcastConfig()
+                .setProperty("hazelcast.tcp.join.port.try.count", 
String.valueOf(joinPortTryCount));
+        return SeaTunnelServerStarter.createHazelcastInstance(seaTunnelConfig);
+    }
+
     @Test
     public void 
testSeaTunnelEngineRetryableExceptionOperationCanBeRetryByHazelcast() {
 

Reply via email to