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

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new a666b5e0c9a [fix](case) Enhance the robustness of 
`set_config_temporary_action` #42306 (#44282)
a666b5e0c9a is described below

commit a666b5e0c9a38906c63044b6e081527d9330d49d
Author: deardeng <[email protected]>
AuthorDate: Wed Nov 20 10:35:44 2024 +0800

    [fix](case) Enhance the robustness of `set_config_temporary_action` #42306 
(#44282)
    
    cherry pick from #42306
---
 .../org/apache/doris/regression/Config.groovy      |  8 ++++++
 .../doris/regression/suite/SuiteContext.groovy     | 31 ++++++++++++++++++++++
 .../demo_p0/set_config_temporary_action.groovy     |  1 +
 3 files changed, 40 insertions(+)

diff --git 
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy
 
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy
index 391b9a630fb..745d204761b 100644
--- 
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy
+++ 
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy
@@ -814,6 +814,14 @@ class Config {
         return urlWithDb
     }
 
+    public static String buildUrlWithDb(String host, int queryPort, String 
dbName) {
+        def url = String.format(
+            
"jdbc:mysql://%s:%s/?useLocalSessionState=true&allowLoadLocalInfile=false",
+            host, queryPort)
+        url = buildUrlWithDb(url, dbName)
+        return url
+    }
+
     private static String addSslUrl(String url) {
         if (url.contains("TLS")) {
             return url
diff --git 
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy
 
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy
index d9268643a44..f5f001b530b 100644
--- 
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy
+++ 
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy
@@ -28,6 +28,7 @@ import java.sql.Connection
 import java.sql.DriverManager
 import java.util.concurrent.ExecutorService
 import java.util.function.Function
+import org.apache.doris.regression.util.JdbcUtils
 
 class ConnectionInfo {
     Connection conn
@@ -315,6 +316,36 @@ class SuiteContext implements Closeable {
         }
     }
 
+    def reconnectToMasterFe = { ->
+        log.info("Reconnecting to a new master frontend...")
+        def result = JdbcUtils.executeToMapArray(getConnection(), "SHOW 
FRONTENDS")
+        def master = null
+        for (def row : result) {
+            if (row.IsMaster == "true") {
+                master = row
+                break
+            }
+        }
+        if (master) {
+            log.info("master found: ${master.Host}:${master.HttpPort}")
+            def url = Config.buildUrlWithDb(master.Host as String, 
master.QueryPort as Integer, dbName)
+            ConnectionInfo connInfo = threadLocalConn.get()
+            def userName = null
+            def userPass = null
+            if (connInfo) {
+                userName = connInfo.username
+                userPass = connInfo.password
+            } else {
+                userName = config.jdbcUser
+                userPass = config.jdbcPassword
+            }
+            connectTo(url, connInfo.username, connInfo.password)
+            log.info("Successfully reconnected to the master")
+        } else {
+            throw new Exception("No master found to reconnect")
+        }
+    }
+
     public void reconnectFe() {
         ConnectionInfo connInfo = threadLocalConn.get()
         if (connInfo == null) {
diff --git a/regression-test/suites/demo_p0/set_config_temporary_action.groovy 
b/regression-test/suites/demo_p0/set_config_temporary_action.groovy
index b4677f7369d..452a5d8aa2c 100644
--- a/regression-test/suites/demo_p0/set_config_temporary_action.groovy
+++ b/regression-test/suites/demo_p0/set_config_temporary_action.groovy
@@ -16,6 +16,7 @@
 // under the License.
 
 suite('set_config_temporary_action', 'nonConcurrent') {
+    context.reconnectToMasterFe()
     def key = 'schedule_slot_num_per_ssd_path'
     setFeConfig(key, 8)
     assertEquals(8, getFeConfig(key) as int)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to