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

gavinchou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 5f000e63fde [fix](regression) fix the failed of 
cold_heat_separation_p2 (#49625)
5f000e63fde is described below

commit 5f000e63fde699d52e63e41d710462603b80c9b2
Author: yagagagaga <zhangmi...@selectdb.com>
AuthorDate: Tue Apr 15 21:22:16 2025 +0800

    [fix](regression) fix the failed of cold_heat_separation_p2 (#49625)
---
 .../add_drop_partition.groovy                      | 41 ++++++---------
 .../add_drop_partition_by_hdfs.groovy              | 60 +++++++++-------------
 .../create_table_use_dynamic_partition.groovy      | 38 ++++++++------
 ...eate_table_use_dynamic_partition_by_hdfs.groovy | 55 ++++++++++----------
 .../create_table_use_partition_policy.groovy       | 17 +++---
 ...reate_table_use_partition_policy_by_hdfs.groovy | 25 ++++-----
 .../create_table_use_policy.groovy                 | 17 +++---
 .../create_table_use_policy_by_hdfs.groovy         | 27 +++++-----
 .../load_colddata_to_hdfs.groovy                   | 22 ++++----
 .../modify_replica_use_partition.groovy            | 48 ++++++++++++-----
 .../modify_replica_use_partition_by_hdfs.groovy    | 57 +++++++++++++-------
 .../table_modify_resouce_and_policy.groovy         | 15 +++---
 .../table_modify_resouce_and_policy_by_hdfs.groovy | 23 ++++-----
 .../test_show_storage_policy_using.groovy          |  2 +-
 14 files changed, 240 insertions(+), 207 deletions(-)

diff --git 
a/regression-test/suites/cold_heat_separation_p2/add_drop_partition.groovy 
b/regression-test/suites/cold_heat_separation_p2/add_drop_partition.groovy
index f53d5c27b36..2250607465e 100644
--- a/regression-test/suites/cold_heat_separation_p2/add_drop_partition.groovy
+++ b/regression-test/suites/cold_heat_separation_p2/add_drop_partition.groovy
@@ -48,7 +48,8 @@ suite("add_drop_partition") {
     }
     // used as passing out parameter to fetchDataSize
     List<Long> sizes = [-1, -1]
-    def tableName = "tbl1"
+    def suffix = UUID.randomUUID().hashCode().abs()
+    def tableName = "tbl1${suffix}"
     sql """ DROP TABLE IF EXISTS ${tableName} """
 
     def check_storage_policy_exist = { name->
@@ -63,8 +64,8 @@ suite("add_drop_partition") {
         return false;
     }
 
-    def resource_name = "test_add_drop_partition_resource"
-    def policy_name= "test_add_drop_partition_policy"
+    def resource_name = "test_add_drop_partition_resource${suffix}"
+    def policy_name= "test_add_drop_partition_policy${suffix}"
 
     if (check_storage_policy_exist(policy_name)) {
         sql """
@@ -159,7 +160,8 @@ suite("add_drop_partition") {
     """
     log.info( "test tablets not empty")
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    def retry = 100
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -167,6 +169,7 @@ suite("add_drop_partition") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     assertTrue(tablets.size() > 0)
     LocalDataSize1 = sizes[0]
     RemoteDataSize1 = sizes[1]
@@ -193,16 +196,14 @@ suite("add_drop_partition") {
         assertTrue(par[12] == "${policy_name}")
     }
 
-    try_sql """
-    drop storage policy add_policy;
-    """
+    def add_resource = "add_resource${suffix}"
 
     try_sql """
-    drop resource add_resource;
+    drop resource ${add_resource};
     """
 
     sql """
-        CREATE RESOURCE IF NOT EXISTS "add_resource"
+        CREATE RESOURCE IF NOT EXISTS "${add_resource}"
         PROPERTIES(
             "type"="s3",
             "AWS_ENDPOINT" = "${getS3Endpoint()}",
@@ -218,11 +219,6 @@ suite("add_drop_partition") {
         );
     """
 
-    try_sql """
-    create storage policy tmp_policy
-    PROPERTIES( "storage_resource" = "add_resource", "cooldown_ttl" = "300");
-    """
-
     // can not set to one policy with different resource
     try {
         sql """alter table ${tableName} set ("storage_policy" = 
"add_policy");"""
@@ -230,22 +226,23 @@ suite("add_drop_partition") {
         assertTrue(true)
     }
 
+    def add_policy1 = "add_policy1${suffix}"
     sql """
-        CREATE STORAGE POLICY IF NOT EXISTS add_policy1
+        CREATE STORAGE POLICY IF NOT EXISTS ${add_policy1}
         PROPERTIES(
             "storage_resource" = "${resource_name}",
             "cooldown_ttl" = "60"
         )
     """
 
-    sql """alter table ${tableName} set ("storage_policy" = "add_policy1");"""
+    sql """alter table ${tableName} set ("storage_policy" = 
"${add_policy1}");"""
 
     // wait for report
     sleep(300000)
     
     partitions = sql "show partitions from ${tableName}"
     for (par in partitions) {
-        assertTrue(par[12] == "add_policy1")
+        assertTrue(par[12] == "${add_policy1}")
     }
 
     
@@ -260,7 +257,7 @@ suite("add_drop_partition") {
 
     partitions = sql "show partitions from ${tableName}"
     for (par in partitions) {
-        assertTrue(par[12] == "add_policy1")
+        assertTrue(par[12] == "${add_policy1}")
     }
 
     sql """
@@ -271,16 +268,12 @@ suite("add_drop_partition") {
     DROP TABLE ${tableName}
     """
 
-    try_sql """
-    drop storage policy add_policy;
-    """
-
     sql """
-    drop storage policy add_policy1;
+    drop storage policy ${add_policy1};
     """
 
     sql """
-    drop resource add_resource;
+    drop resource ${add_resource};
     """
 
 
diff --git 
a/regression-test/suites/cold_heat_separation_p2/add_drop_partition_by_hdfs.groovy
 
b/regression-test/suites/cold_heat_separation_p2/add_drop_partition_by_hdfs.groovy
index f42ddc22503..721c12d7dd4 100644
--- 
a/regression-test/suites/cold_heat_separation_p2/add_drop_partition_by_hdfs.groovy
+++ 
b/regression-test/suites/cold_heat_separation_p2/add_drop_partition_by_hdfs.groovy
@@ -19,6 +19,9 @@ import org.codehaus.groovy.runtime.IOGroovyMethods
 import java.time.LocalDate;
 
 suite("add_drop_partition_by_hdfs") {
+    if (!enableHdfs()) {
+        logger.info("skip this case because hdfs is not enabled");
+    }
     def fetchBeHttp = { check_func, meta_url ->
         def i = meta_url.indexOf("/api")
         String endPoint = meta_url.substring(0, i)
@@ -48,7 +51,8 @@ suite("add_drop_partition_by_hdfs") {
     }
     // used as passing out parameter to fetchDataSize
     List<Long> sizes = [-1, -1]
-    def tableName = "tbl1"
+    def suffix = UUID.randomUUID().hashCode().abs()
+    def tableName = "tbl1${suffix}"
     sql """ DROP TABLE IF EXISTS ${tableName} """
 
     def check_storage_policy_exist = { name->
@@ -63,8 +67,8 @@ suite("add_drop_partition_by_hdfs") {
         return false;
     }
 
-    def resource_name = "test_add_drop_partition_resource"
-    def policy_name= "test_add_drop_partition_policy"
+    def resource_name = "test_add_drop_partition_resource${suffix}"
+    def policy_name= "test_add_drop_partition_policy${suffix}"
 
     if (check_storage_policy_exist(policy_name)) {
         sql """
@@ -87,12 +91,7 @@ suite("add_drop_partition_by_hdfs") {
             "type"="hdfs",
             "fs.defaultFS"="${getHdfsFs()}",
             "hadoop.username"="${getHdfsUser()}",
-            "hadoop.password"="${getHdfsPasswd()}",
-            "dfs.nameservices" = "my_ha",
-            "dfs.ha.namenodes.my_ha" = "my_namenode1, my_namenode2",
-            "dfs.namenode.rpc-address.my_ha.my_namenode1" = "127.0.0.1:10000",
-            "dfs.namenode.rpc-address.my_ha.my_namenode2" = "127.0.0.1:10000",
-            "dfs.client.failover.proxy.provider" = 
"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
+            "hadoop.password"="${getHdfsPasswd()}"
         );
     """
 
@@ -157,7 +156,8 @@ suite("add_drop_partition_by_hdfs") {
     """
     log.info( "test tablets not empty")
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    def retry = 100
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -165,6 +165,7 @@ suite("add_drop_partition_by_hdfs") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     assertTrue(tablets.size() > 0)
     LocalDataSize1 = sizes[0]
     RemoteDataSize1 = sizes[1]
@@ -191,34 +192,22 @@ suite("add_drop_partition_by_hdfs") {
         assertTrue(par[12] == "${policy_name}")
     }
 
-    try_sql """
-    drop storage policy add_policy;
-    """
+    def add_resource = "add_resource${suffix}"
 
     try_sql """
-    drop resource add_resource;
+    drop resource ${add_resource};
     """
 
     sql """
-        CREATE RESOURCE IF NOT EXISTS "add_resource"
+        CREATE RESOURCE IF NOT EXISTS "${add_resource}"
         PROPERTIES(
             "type"="hdfs",
             "fs.defaultFS"="${getHdfsFs()}",
             "hadoop.username"="${getHdfsUser()}",
-            "hadoop.password"="${getHdfsPasswd()}",
-            "dfs.nameservices" = "my_ha",
-            "dfs.ha.namenodes.my_ha" = "my_namenode1, my_namenode2",
-            "dfs.namenode.rpc-address.my_ha.my_namenode1" = "127.0.0.1:10000",
-            "dfs.namenode.rpc-address.my_ha.my_namenode2" = "127.0.0.1:10000",
-            "dfs.client.failover.proxy.provider" = 
"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
+            "hadoop.password"="${getHdfsPasswd()}"
         );
     """
 
-    try_sql """
-    create storage policy tmp_policy
-    PROPERTIES( "storage_resource" = "add_resource", "cooldown_ttl" = "300");
-    """
-
     // can not set to one policy with different resource
     try {
         sql """alter table ${tableName} set ("storage_policy" = 
"add_policy");"""
@@ -226,22 +215,23 @@ suite("add_drop_partition_by_hdfs") {
         assertTrue(true)
     }
 
+    def add_policy1 = "add_policy1${suffix}"
     sql """
-        CREATE STORAGE POLICY IF NOT EXISTS add_policy1
+        CREATE STORAGE POLICY IF NOT EXISTS ${add_policy1}
         PROPERTIES(
             "storage_resource" = "${resource_name}",
             "cooldown_ttl" = "60"
         )
     """
 
-    sql """alter table ${tableName} set ("storage_policy" = "add_policy1");"""
+    sql """alter table ${tableName} set ("storage_policy" = 
"${add_policy1}");"""
 
     // wait for report
     sleep(300000)
 
     partitions = sql "show partitions from ${tableName}"
     for (par in partitions) {
-        assertTrue(par[12] == "add_policy1")
+        assertTrue(par[12] == "${add_policy1}")
     }
 
 
@@ -251,12 +241,12 @@ suite("add_drop_partition_by_hdfs") {
     """
 
     sql """
-        insert into ${tableName} values(1, "2017-01-01");
+        insert into ${tableName} values(1, "2016-01-01");
     """
 
     partitions = sql "show partitions from ${tableName}"
     for (par in partitions) {
-        assertTrue(par[12] == "add_policy1")
+        assertTrue(par[12] == "${add_policy1}")
     }
 
     sql """
@@ -267,16 +257,12 @@ suite("add_drop_partition_by_hdfs") {
     DROP TABLE ${tableName}
     """
 
-    try_sql """
-    drop storage policy add_policy;
-    """
-
     sql """
-    drop storage policy add_policy1;
+    drop storage policy ${add_policy1};
     """
 
     sql """
-    drop resource add_resource;
+    drop resource ${add_resource};
     """
 
 
diff --git 
a/regression-test/suites/cold_heat_separation_p2/create_table_use_dynamic_partition.groovy
 
b/regression-test/suites/cold_heat_separation_p2/create_table_use_dynamic_partition.groovy
index 580946bd7a8..bcd17146b3d 100644
--- 
a/regression-test/suites/cold_heat_separation_p2/create_table_use_dynamic_partition.groovy
+++ 
b/regression-test/suites/cold_heat_separation_p2/create_table_use_dynamic_partition.groovy
@@ -48,7 +48,8 @@ suite("cold_heat_dynamic_partition") {
     }
     // used as passing out parameter to fetchDataSize
     List<Long> sizes = [-1, -1]
-    def tableName = "tbl2"
+    def suffix = UUID.randomUUID().hashCode().abs()
+    def tableName = "tbl2${suffix}"
     sql """ DROP TABLE IF EXISTS ${tableName} """
 
     def check_storage_policy_exist = { name->
@@ -63,8 +64,8 @@ suite("cold_heat_dynamic_partition") {
         return false;
     }
 
-    def resource_name = "test_dynamic_partition_resource"
-    def policy_name= "test_dynamic_partition_policy"
+    def resource_name = "test_dynamic_partition_resource${suffix}"
+    def policy_name= "test_dynamic_partition_policy${suffix}"
 
     if (check_storage_policy_exist(policy_name)) {
         sql """
@@ -169,7 +170,8 @@ suite("cold_heat_dynamic_partition") {
     """
     log.info( "test tablets not empty")
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    def retry = 100
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -177,6 +179,7 @@ suite("cold_heat_dynamic_partition") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     assertTrue(tablets.size() > 0)
     LocalDataSize1 = sizes[0]
     RemoteDataSize1 = sizes[1]
@@ -203,16 +206,18 @@ suite("cold_heat_dynamic_partition") {
         assertTrue(par[12] == "${policy_name}")
     }
 
+    def tmp_policy = "tmp_policy${suffix}"
     try_sql """
-    drop storage policy tmp_policy;
+    drop storage policy ${tmp_policy};
     """
 
+    def tmp_resource = "tmp_resource${suffix}"
     try_sql """
-    drop resource tmp_resource;
+    drop resource ${tmp_resource};
     """
 
     sql """
-        CREATE RESOURCE IF NOT EXISTS "tmp_resource"
+        CREATE RESOURCE IF NOT EXISTS "${tmp_resource}"
         PROPERTIES(
             "type"="s3",
             "AWS_ENDPOINT" = "${getS3Endpoint()}",
@@ -229,33 +234,34 @@ suite("cold_heat_dynamic_partition") {
     """
 
     try_sql """
-    create storage policy tmp_policy
-    PROPERTIES( "storage_resource" = "tmp_resource", "cooldown_ttl" = "300");
+    create storage policy ${tmp_policy}
+    PROPERTIES( "storage_resource" = "${tmp_resource}", "cooldown_ttl" = 
"300");
     """
 
     // can not set to one policy with different resource
     try {
-        sql """alter table ${tableName} set ("storage_policy" = 
"tmp_policy");"""
+        sql """alter table ${tableName} set ("storage_policy" = 
"${tmp_policy}");"""
     } catch (java.sql.SQLException t) {
         assertTrue(true)
     }
 
+    def tmp_policy1 = "tmp_policy1${suffix}"
     sql """
-        CREATE STORAGE POLICY IF NOT EXISTS tmp_policy1
+        CREATE STORAGE POLICY IF NOT EXISTS ${tmp_policy1}
         PROPERTIES(
             "storage_resource" = "${resource_name}",
             "cooldown_ttl" = "60"
         )
     """
 
-    sql """alter table ${tableName} set ("storage_policy" = "tmp_policy1");"""
+    sql """alter table ${tableName} set ("storage_policy" = 
"${tmp_policy1}");"""
 
     // wait for report
     sleep(300000)
     
     partitions = sql "show partitions from ${tableName}"
     for (par in partitions) {
-        assertTrue(par[12] == "tmp_policy1")
+        assertTrue(par[12] == "${tmp_policy1}")
     }
 
     sql """
@@ -267,15 +273,15 @@ suite("cold_heat_dynamic_partition") {
     """
 
     sql """
-    drop storage policy tmp_policy;
+    drop storage policy ${tmp_policy};
     """
 
     sql """
-    drop storage policy tmp_policy1;
+    drop storage policy ${tmp_policy1};
     """
 
     sql """
-    drop resource tmp_resource;
+    drop resource ${tmp_resource};
     """
 
 
diff --git 
a/regression-test/suites/cold_heat_separation_p2/create_table_use_dynamic_partition_by_hdfs.groovy
 
b/regression-test/suites/cold_heat_separation_p2/create_table_use_dynamic_partition_by_hdfs.groovy
index d099e43d7be..0e64132ba51 100644
--- 
a/regression-test/suites/cold_heat_separation_p2/create_table_use_dynamic_partition_by_hdfs.groovy
+++ 
b/regression-test/suites/cold_heat_separation_p2/create_table_use_dynamic_partition_by_hdfs.groovy
@@ -19,6 +19,9 @@ import org.codehaus.groovy.runtime.IOGroovyMethods
 import java.time.LocalDate;
 
 suite("cold_heat_dynamic_partition_by_hdfs") {
+    if (!enableHdfs()) {
+        logger.info("skip this case because hdfs is not enabled");
+    }
     def fetchBeHttp = { check_func, meta_url ->
         def i = meta_url.indexOf("/api")
         String endPoint = meta_url.substring(0, i)
@@ -48,7 +51,8 @@ suite("cold_heat_dynamic_partition_by_hdfs") {
     }
     // used as passing out parameter to fetchDataSize
     List<Long> sizes = [-1, -1]
-    def tableName = "tbl2"
+    def suffix = UUID.randomUUID().hashCode().abs()
+    def tableName = "tbl2${suffix}"
     sql """ DROP TABLE IF EXISTS ${tableName} """
 
     def check_storage_policy_exist = { name->
@@ -63,8 +67,8 @@ suite("cold_heat_dynamic_partition_by_hdfs") {
         return false;
     }
 
-    def resource_name = "test_dynamic_partition_resource"
-    def policy_name= "test_dynamic_partition_policy"
+    def resource_name = "test_dynamic_partition_resource${suffix}"
+    def policy_name= "test_dynamic_partition_policy${suffix}"
 
     if (check_storage_policy_exist(policy_name)) {
         sql """
@@ -87,12 +91,7 @@ suite("cold_heat_dynamic_partition_by_hdfs") {
             "type"="hdfs",
             "fs.defaultFS"="${getHdfsFs()}",
             "hadoop.username"="${getHdfsUser()}",
-            "hadoop.password"="${getHdfsPasswd()}",
-            "dfs.nameservices" = "my_ha",
-            "dfs.ha.namenodes.my_ha" = "my_namenode1, my_namenode2",
-            "dfs.namenode.rpc-address.my_ha.my_namenode1" = "127.0.0.1:10000",
-            "dfs.namenode.rpc-address.my_ha.my_namenode2" = "127.0.0.1:10000",
-            "dfs.client.failover.proxy.provider" = 
"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
+            "hadoop.password"="${getHdfsPasswd()}"
         );
     """
 
@@ -167,7 +166,8 @@ suite("cold_heat_dynamic_partition_by_hdfs") {
     """
     log.info( "test tablets not empty")
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    def retry = 100
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -175,6 +175,7 @@ suite("cold_heat_dynamic_partition_by_hdfs") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     assertTrue(tablets.size() > 0)
     LocalDataSize1 = sizes[0]
     RemoteDataSize1 = sizes[1]
@@ -201,57 +202,55 @@ suite("cold_heat_dynamic_partition_by_hdfs") {
         assertTrue(par[12] == "${policy_name}")
     }
 
+    def tmp_policy = "tmp_policy${suffix}"
     try_sql """
-    drop storage policy tmp_policy;
+    drop storage policy ${tmp_policy};
     """
 
+    def tmp_resource = "tmp_resource${suffix}"
     try_sql """
-    drop resource tmp_resource;
+    drop resource ${tmp_resource};
     """
 
     sql """
-        CREATE RESOURCE IF NOT EXISTS "tmp_resource"
+        CREATE RESOURCE IF NOT EXISTS "${tmp_resource}"
         PROPERTIES(
             "type"="hdfs",
             "fs.defaultFS"="${getHdfsFs()}",
             "hadoop.username"="${getHdfsUser()}",
-            "hadoop.password"="${getHdfsPasswd()}",
-            "dfs.nameservices" = "my_ha",
-            "dfs.ha.namenodes.my_ha" = "my_namenode1, my_namenode2",
-            "dfs.namenode.rpc-address.my_ha.my_namenode1" = "127.0.0.1:10000",
-            "dfs.namenode.rpc-address.my_ha.my_namenode2" = "127.0.0.1:10000",
-            "dfs.client.failover.proxy.provider" = 
"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
+            "hadoop.password"="${getHdfsPasswd()}"
         );
     """
 
     try_sql """
-    create storage policy tmp_policy
-    PROPERTIES( "storage_resource" = "tmp_resource", "cooldown_ttl" = "300");
+    create storage policy ${tmp_policy}
+    PROPERTIES( "storage_resource" = "${tmp_resource}", "cooldown_ttl" = 
"300");
     """
 
     // can not set to one policy with different resource
     try {
-        sql """alter table ${tableName} set ("storage_policy" = 
"tmp_policy");"""
+        sql """alter table ${tableName} set ("storage_policy" = 
"${tmp_policy}");"""
     } catch (java.sql.SQLException t) {
         assertTrue(true)
     }
 
+    def tmp_policy1 = "tmp_policy1${suffix}"
     sql """
-        CREATE STORAGE POLICY IF NOT EXISTS tmp_policy1
+        CREATE STORAGE POLICY IF NOT EXISTS ${tmp_policy1}
         PROPERTIES(
             "storage_resource" = "${resource_name}",
             "cooldown_ttl" = "60"
         )
     """
 
-    sql """alter table ${tableName} set ("storage_policy" = "tmp_policy1");"""
+    sql """alter table ${tableName} set ("storage_policy" = 
"${tmp_policy1}");"""
 
     // wait for report
     sleep(300000)
 
     partitions = sql "show partitions from ${tableName}"
     for (par in partitions) {
-        assertTrue(par[12] == "tmp_policy1")
+        assertTrue(par[12] == "${tmp_policy1}")
     }
 
     sql """
@@ -263,15 +262,15 @@ suite("cold_heat_dynamic_partition_by_hdfs") {
     """
 
     sql """
-    drop storage policy tmp_policy;
+    drop storage policy ${tmp_policy};
     """
 
     sql """
-    drop storage policy tmp_policy1;
+    drop storage policy ${tmp_policy1};
     """
 
     sql """
-    drop resource tmp_resource;
+    drop resource ${tmp_resource};
     """
 
 
diff --git 
a/regression-test/suites/cold_heat_separation_p2/create_table_use_partition_policy.groovy
 
b/regression-test/suites/cold_heat_separation_p2/create_table_use_partition_policy.groovy
index 97d83ec64e0..25eaa5e7a30 100644
--- 
a/regression-test/suites/cold_heat_separation_p2/create_table_use_partition_policy.groovy
+++ 
b/regression-test/suites/cold_heat_separation_p2/create_table_use_partition_policy.groovy
@@ -47,7 +47,8 @@ suite("create_table_use_partition_policy") {
     }
     // used as passing out parameter to fetchDataSize
     List<Long> sizes = [-1, -1]
-    def tableName = "lineitem1"
+    def suffix = UUID.randomUUID().hashCode().abs()
+    def tableName = "lineitem1${suffix}"
     sql """ DROP TABLE IF EXISTS ${tableName} """
     def stream_load_one_part = { partnum ->
         streamLoad {
@@ -90,13 +91,13 @@ suite("create_table_use_partition_policy") {
     def load_lineitem_table = {
         stream_load_one_part("00")
         stream_load_one_part("01")
-        def tablets = sql """
+        def tablets = sql_return_maparray """
         SHOW TABLETS FROM ${tableName} PARTITIONS(p202301)
         """
-        while (tablets[0][8] == "0") {
+        while (tablets[0].LocalDataSize == "0") {
             log.info( "test local size is zero, sleep 10s")
             sleep(10000)
-            tablets = sql """
+            tablets = sql_return_maparray """
             SHOW TABLETS FROM ${tableName} PARTITIONS(p202301)
             """
         }
@@ -114,8 +115,8 @@ suite("create_table_use_partition_policy") {
         return false;
     }
 
-    def resource_name = "test_table_partition_with_data_resource"
-    def policy_name= "test_table_partition_with_data_policy"
+    def resource_name = "test_table_partition_with_data_resource${suffix}"
+    def policy_name= "test_table_partition_with_data_policy${suffix}"
 
     if (check_storage_policy_exist(policy_name)) {
         sql """
@@ -217,7 +218,8 @@ suite("create_table_use_partition_policy") {
     """
     log.info( "test tablets not empty")
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    def retry = 100
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -225,6 +227,7 @@ suite("create_table_use_partition_policy") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     assertTrue(tablets.size() > 0)
     LocalDataSize1 = sizes[0]
     RemoteDataSize1 = sizes[1]
diff --git 
a/regression-test/suites/cold_heat_separation_p2/create_table_use_partition_policy_by_hdfs.groovy
 
b/regression-test/suites/cold_heat_separation_p2/create_table_use_partition_policy_by_hdfs.groovy
index 5c03aeba0c1..ce4264480a8 100644
--- 
a/regression-test/suites/cold_heat_separation_p2/create_table_use_partition_policy_by_hdfs.groovy
+++ 
b/regression-test/suites/cold_heat_separation_p2/create_table_use_partition_policy_by_hdfs.groovy
@@ -18,6 +18,9 @@ import groovy.json.JsonSlurper
 import org.codehaus.groovy.runtime.IOGroovyMethods
 
 suite("create_table_use_partition_policy_by_hdfs") {
+    if (!enableHdfs()) {
+        logger.info("skip this case because hdfs is not enabled");
+    }
     def fetchBeHttp = { check_func, meta_url ->
         def i = meta_url.indexOf("/api")
         String endPoint = meta_url.substring(0, i)
@@ -47,7 +50,8 @@ suite("create_table_use_partition_policy_by_hdfs") {
     }
     // used as passing out parameter to fetchDataSize
     List<Long> sizes = [-1, -1]
-    def tableName = "lineitem1"
+    def suffix = UUID.randomUUID().hashCode().abs()
+    def tableName = "lineitem1${suffix}"
     sql """ DROP TABLE IF EXISTS ${tableName} """
     def stream_load_one_part = { partnum ->
         streamLoad {
@@ -90,13 +94,13 @@ suite("create_table_use_partition_policy_by_hdfs") {
     def load_lineitem_table = {
         stream_load_one_part("00")
         stream_load_one_part("01")
-        def tablets = sql """
+        def tablets = sql_return_maparray """
         SHOW TABLETS FROM ${tableName} PARTITIONS(p202301)
         """
         while (tablets[0].LocalDataSize == "0") {
             log.info( "test local size is zero, sleep 10s")
             sleep(10000)
-            tablets = sql """
+            tablets = sql_return_maparray """
             SHOW TABLETS FROM ${tableName} PARTITIONS(p202301)
             """
         }
@@ -114,8 +118,8 @@ suite("create_table_use_partition_policy_by_hdfs") {
         return false;
     }
 
-    def resource_name = "test_table_partition_with_data_resource"
-    def policy_name= "test_table_partition_with_data_policy"
+    def resource_name = "test_table_partition_with_data_resource${suffix}"
+    def policy_name= "test_table_partition_with_data_policy${suffix}"
 
     if (check_storage_policy_exist(policy_name)) {
         sql """
@@ -138,12 +142,7 @@ suite("create_table_use_partition_policy_by_hdfs") {
             "type"="hdfs",
             "fs.defaultFS"="${getHdfsFs()}",
             "hadoop.username"="${getHdfsUser()}",
-            "hadoop.password"="${getHdfsPasswd()}",
-            "dfs.nameservices" = "my_ha",
-            "dfs.ha.namenodes.my_ha" = "my_namenode1, my_namenode2",
-            "dfs.namenode.rpc-address.my_ha.my_namenode1" = "127.0.0.1:10000",
-            "dfs.namenode.rpc-address.my_ha.my_namenode2" = "127.0.0.1:10000",
-            "dfs.client.failover.proxy.provider" = 
"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
+            "hadoop.password"="${getHdfsPasswd()}"
         );
     """
 
@@ -318,8 +317,9 @@ suite("create_table_use_partition_policy_by_hdfs") {
     SHOW TABLETS FROM ${tableName} PARTITIONS(p202301)
     """
     log.info( "test tablets not empty")
+    def retry = 100
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -327,6 +327,7 @@ suite("create_table_use_partition_policy_by_hdfs") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     assertTrue(tablets.size() > 0)
     LocalDataSize1 = sizes[0]
     RemoteDataSize1 = sizes[1]
diff --git 
a/regression-test/suites/cold_heat_separation_p2/create_table_use_policy.groovy 
b/regression-test/suites/cold_heat_separation_p2/create_table_use_policy.groovy
index 4073a5c67b8..f7b024795f5 100644
--- 
a/regression-test/suites/cold_heat_separation_p2/create_table_use_policy.groovy
+++ 
b/regression-test/suites/cold_heat_separation_p2/create_table_use_policy.groovy
@@ -47,7 +47,8 @@ suite("create_table_use_policy") {
     }
     // used as passing out parameter to fetchDataSize
     List<Long> sizes = [-1, -1]
-    def tableName = "lineitem2"
+    def suffix = UUID.randomUUID().hashCode().abs()
+    def tableName = "lineitem2${suffix}"
     sql """ DROP TABLE IF EXISTS ${tableName} """
     def stream_load_one_part = { partnum ->
         streamLoad {
@@ -114,8 +115,8 @@ suite("create_table_use_policy") {
         return false;
     }
 
-    def resource_name = "test_table_with_data_resource"
-    def policy_name= "test_table_with_data_policy"
+    def resource_name = "test_table_with_data_resource${suffix}"
+    def policy_name= "test_table_with_data_policy${suffix}"
 
     if (check_storage_policy_exist(policy_name)) {
         sql """
@@ -189,7 +190,7 @@ suite("create_table_use_policy") {
     load_lineitem_table()
 
     // show tablets from table, 获取第一个tablet的 LocalDataSize1
-    tablets = sql_return_maparray """
+    def tablets = sql_return_maparray """
     SHOW TABLETS FROM ${tableName}
     """
     log.info( "test tablets not empty")
@@ -206,7 +207,8 @@ suite("create_table_use_policy") {
     """
     log.info( "test tablets not empty")
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    def retry = 100
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -214,6 +216,7 @@ suite("create_table_use_policy") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     assertTrue(tablets.size() > 0)
     log.info( "test remote size not zero")
     assertEquals(LocalDataSize1, sizes[1])
@@ -272,7 +275,8 @@ suite("create_table_use_policy") {
     """
     log.info( "test tablets not empty")
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    retry = 100
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -280,6 +284,7 @@ suite("create_table_use_policy") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     assertTrue(tablets.size() > 0)
     log.info( "test remote size not zero")
     assertEquals(LocalDataSize1, sizes[1])
diff --git 
a/regression-test/suites/cold_heat_separation_p2/create_table_use_policy_by_hdfs.groovy
 
b/regression-test/suites/cold_heat_separation_p2/create_table_use_policy_by_hdfs.groovy
index 9ff61a35e04..408f2e6275b 100644
--- 
a/regression-test/suites/cold_heat_separation_p2/create_table_use_policy_by_hdfs.groovy
+++ 
b/regression-test/suites/cold_heat_separation_p2/create_table_use_policy_by_hdfs.groovy
@@ -18,6 +18,9 @@ import groovy.json.JsonSlurper
 import org.codehaus.groovy.runtime.IOGroovyMethods
 
 suite("create_table_use_policy_by_hdfs") {
+    if (!enableHdfs()) {
+        logger.info("skip this case because hdfs is not enabled");
+    }
     def fetchBeHttp = { check_func, meta_url ->
         def i = meta_url.indexOf("/api")
         String endPoint = meta_url.substring(0, i)
@@ -47,7 +50,8 @@ suite("create_table_use_policy_by_hdfs") {
     }
     // used as passing out parameter to fetchDataSize
     List<Long> sizes = [-1, -1]
-    def tableName = "lineitem2"
+    def suffix = UUID.randomUUID().hashCode().abs()
+    def tableName = "lineitem2${suffix}"
     sql """ DROP TABLE IF EXISTS ${tableName} """
     def stream_load_one_part = { partnum ->
         streamLoad {
@@ -114,8 +118,8 @@ suite("create_table_use_policy_by_hdfs") {
         return false;
     }
 
-    def resource_name = "test_table_with_data_resource"
-    def policy_name= "test_table_with_data_policy"
+    def resource_name = "test_table_with_data_resource${suffix}"
+    def policy_name= "test_table_with_data_policy${suffix}"
 
     if (check_storage_policy_exist(policy_name)) {
         sql """
@@ -138,12 +142,7 @@ suite("create_table_use_policy_by_hdfs") {
             "type"="hdfs",
             "fs.defaultFS"="${getHdfsFs()}",
             "hadoop.username"="${getHdfsUser()}",
-            "hadoop.password"="${getHdfsPasswd()}",
-            "dfs.nameservices" = "my_ha",
-            "dfs.ha.namenodes.my_ha" = "my_namenode1, my_namenode2",
-            "dfs.namenode.rpc-address.my_ha.my_namenode1" = "127.0.0.1:10000",
-            "dfs.namenode.rpc-address.my_ha.my_namenode2" = "127.0.0.1:10000",
-            "dfs.client.failover.proxy.provider" = 
"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
+            "hadoop.password"="${getHdfsPasswd()}"
         );
     """
 
@@ -187,7 +186,7 @@ suite("create_table_use_policy_by_hdfs") {
     load_lineitem_table()
 
     // show tablets from table, 获取第一个tablet的 LocalDataSize1
-    tablets = sql_return_maparray """
+    def tablets = sql_return_maparray """
     SHOW TABLETS FROM ${tableName}
     """
     log.info( "test tablets not empty")
@@ -204,7 +203,8 @@ suite("create_table_use_policy_by_hdfs") {
     """
     log.info( "test tablets not empty")
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    def retry = 100
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -212,6 +212,7 @@ suite("create_table_use_policy_by_hdfs") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     assertTrue(tablets.size() > 0)
     log.info( "test remote size not zero")
     assertEquals(LocalDataSize1, sizes[1])
@@ -270,7 +271,8 @@ suite("create_table_use_policy_by_hdfs") {
     """
     log.info( "test tablets not empty")
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    retry = 100
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -278,6 +280,7 @@ suite("create_table_use_policy_by_hdfs") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     assertTrue(tablets.size() > 0)
     log.info( "test remote size not zero")
     assertEquals(LocalDataSize1, sizes[1])
diff --git 
a/regression-test/suites/cold_heat_separation_p2/load_colddata_to_hdfs.groovy 
b/regression-test/suites/cold_heat_separation_p2/load_colddata_to_hdfs.groovy
index 673fa9d39c8..8aa2ded305a 100644
--- 
a/regression-test/suites/cold_heat_separation_p2/load_colddata_to_hdfs.groovy
+++ 
b/regression-test/suites/cold_heat_separation_p2/load_colddata_to_hdfs.groovy
@@ -51,7 +51,8 @@ suite("load_colddata_to_hdfs") {
     }
     // used as passing out parameter to fetchDataSize
     List<Long> sizes = [-1, -1]
-    def tableName = "lineitem2"
+    def suffix = UUID.randomUUID().hashCode().abs()
+    def tableName = "lineitem2${suffix}"
     sql """ DROP TABLE IF EXISTS ${tableName} """
     def stream_load_one_part = { partnum ->
         streamLoad {
@@ -117,8 +118,8 @@ suite("load_colddata_to_hdfs") {
         return false;
     }
 
-    def resource_name = "test_table_with_data_resource"
-    def policy_name= "test_table_with_data_policy"
+    def resource_name = "test_table_with_data_resource${suffix}"
+    def policy_name= "test_table_with_data_policy${suffix}"
 
     if (check_storage_policy_exist(policy_name)) {
         sql """
@@ -141,13 +142,8 @@ suite("load_colddata_to_hdfs") {
         PROPERTIES (
             "type"="hdfs",
             "fs.defaultFS"="${hdfsFs}",
-            "hadoop.username"="hive",
-            "hadoop.password"="hive",
-            "dfs.nameservices" = "my_ha",
-            "dfs.ha.namenodes.my_ha" = "my_namenode1, my_namenode2",
-            "dfs.namenode.rpc-address.my_ha.my_namenode1" = "127.0.0.1:10000",
-            "dfs.namenode.rpc-address.my_ha.my_namenode2" = "127.0.0.1:10000",
-            "dfs.client.failover.proxy.provider" = 
"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
+            "hadoop.username"="${getHdfsUser()}",
+            "hadoop.password"="${getHdfsPasswd()}"
         );
     """
 
@@ -191,7 +187,7 @@ suite("load_colddata_to_hdfs") {
     load_lineitem_table()
 
     // show tablets from table, 获取第一个tablet的 LocalDataSize1
-    tablets = sql_return_maparray """
+    def tablets = sql_return_maparray """
     SHOW TABLETS FROM ${tableName}
     """
     log.info( "test tablets not empty")
@@ -208,7 +204,8 @@ suite("load_colddata_to_hdfs") {
     """
     log.info( "test tablets not empty")
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    def retry = 100
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -216,6 +213,7 @@ suite("load_colddata_to_hdfs") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     assertTrue(tablets.size() > 0)
     log.info( "test remote size not zero")
     assertEquals(LocalDataSize1, sizes[1])
diff --git 
a/regression-test/suites/cold_heat_separation_p2/modify_replica_use_partition.groovy
 
b/regression-test/suites/cold_heat_separation_p2/modify_replica_use_partition.groovy
index 744fef15037..b66ced914c6 100644
--- 
a/regression-test/suites/cold_heat_separation_p2/modify_replica_use_partition.groovy
+++ 
b/regression-test/suites/cold_heat_separation_p2/modify_replica_use_partition.groovy
@@ -18,6 +18,10 @@ import groovy.json.JsonSlurper
 import org.codehaus.groovy.runtime.IOGroovyMethods
 
 suite("modify_replica_use_partition") {
+
+def replicaNum = getFeConfig("force_olap_table_replication_num")
+setFeConfig("force_olap_table_replication_num", 0)
+try {
     def fetchBeHttp = { check_func, meta_url ->
         def i = meta_url.indexOf("/api")
         String endPoint = meta_url.substring(0, i)
@@ -61,8 +65,8 @@ suite("modify_replica_use_partition") {
         assertEquals(code, 0)
         return out
     }
-
-    def tableName = "lineitem3"
+    def suffix = UUID.randomUUID().hashCode().abs()
+    def tableName = "lineitem3${suffix}"
     sql """ DROP TABLE IF EXISTS ${tableName} """
     def stream_load_one_part = { partnum ->
         streamLoad {
@@ -129,8 +133,8 @@ suite("modify_replica_use_partition") {
         return false;
     }
 
-    def resource_name = "test_table_replica_with_data_resource"
-    def policy_name= "test_table_replica_with_data_policy"
+    def resource_name = "test_table_replica_with_data_resource${suffix}"
+    def policy_name= "test_table_replica_with_data_policy${suffix}"
 
     if (check_storage_policy_exist(policy_name)) {
         sql """
@@ -209,6 +213,7 @@ suite("modify_replica_use_partition") {
     load_lineitem_table()
 
     // 等待10min,show tablets from table, 预期not_use_storage_policy_tablet_list 的 
RemoteDataSize 为LocalDataSize1,LocalDataSize为0
+    log.info("wait for 10min")
     sleep(600000)
 
 
@@ -217,7 +222,8 @@ suite("modify_replica_use_partition") {
     """
     log.info( "test tablets not empty")
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    def retry = 100
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -225,6 +231,7 @@ suite("modify_replica_use_partition") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     assertTrue(tablets.size() > 0)
     def LocalDataSize1 = sizes[0]
     def RemoteDataSize1 = sizes[1]
@@ -233,12 +240,13 @@ suite("modify_replica_use_partition") {
     log.info( "test remote size not zero")
     assertTrue(RemoteDataSize1 != 0)
     def originSize = tablets.size()
+    assertEquals(originSize, 6, "${tableName}'s tablets should be 6")
 
     // alter change replication num
     if (!isCloudMode()) {
         sql """
         ALTER TABLE ${tableName}
-        MODIFY PARTITION (p202301, p202302) SET("replication_num"="3");
+        MODIFY PARTITION (p202301, p202302) SET("replication_num"="3", 
"storage_policy" = "${policy_name}");
         """
     }
 
@@ -250,19 +258,22 @@ suite("modify_replica_use_partition") {
     select * from ${tableName} limit 10
     """
     // wait one minute for migration to be completed
+    log.info("wait one minute for migration to be completed")
     sleep(60000)
 
     // 对比所有tablets的replicas的rowsets meta是否相同
     tablets = sql_return_maparray """
     SHOW TABLETS FROM ${tableName}
     """
-    while (tablets.size() != 3 * originSize) {
-        log.info( "tablets clone not finished, sleep 10s")
+    retry = 100
+    while (tablets.size() != 3 * originSize && retry --> 0) {
+        log.info( "tablets clone not finished(tablets.size = 
${tablets.size()}, originSize = ${originSize}), sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
         SHOW TABLETS FROM ${tableName}
         """
     }
+    assertTrue(tablets.size() == 3 * originSize, "tablets clone not finished, 
maybe some error occurred")
     def compactionStatusIdx = tablets[0].size() - 1
     // check rowsets inside the 3 replica
     def iterate_num = tablets.size() / 3;
@@ -336,6 +347,7 @@ suite("modify_replica_use_partition") {
     assertEquals(RemoteDataSize1, 0)
 
     // 等待10min,show tablets from table, 预期not_use_storage_policy_tablet_list 的 
RemoteDataSize 为LocalDataSize1,LocalDataSize为0
+    log.info("wait for 10min")
     sleep(600000)
 
 
@@ -345,7 +357,8 @@ suite("modify_replica_use_partition") {
     log.info( "test tablets not empty")
     assertTrue(tablets.size() > 0)
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    retry = 100
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -353,6 +366,7 @@ suite("modify_replica_use_partition") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     LocalDataSize1 = sizes[0]
     RemoteDataSize1 = sizes[1]
     log.info( "test local size is zero")
@@ -364,7 +378,7 @@ suite("modify_replica_use_partition") {
     if (!isCloudMode()) {
         sql """
         ALTER TABLE ${tableName}
-        MODIFY PARTITION (p202301, p202302) SET("replication_num"="1");
+        MODIFY PARTITION (p202301, p202302) SET("replication_num"="1", 
"storage_policy" = "${policy_name}");
         """
     }
 
@@ -431,6 +445,7 @@ suite("modify_replica_use_partition") {
     assertEquals(RemoteDataSize1, 0)
 
     // 等待10min,show tablets from table, 预期not_use_storage_policy_tablet_list 的 
RemoteDataSize 为LocalDataSize1,LocalDataSize为0
+    log.info("wait for 10min")
     sleep(600000)
 
 
@@ -440,7 +455,8 @@ suite("modify_replica_use_partition") {
     log.info( "test tablets not empty")
     assertTrue(tablets.size() > 0)
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    retry = 100
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -448,6 +464,7 @@ suite("modify_replica_use_partition") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     LocalDataSize1 = sizes[0]
     RemoteDataSize1 = sizes[1]
     log.info( "test local size is zero")
@@ -459,12 +476,12 @@ suite("modify_replica_use_partition") {
     if (!isCloudMode()) {
         sql """
         ALTER TABLE ${tableName}
-        MODIFY PARTITION (p202301) SET("replication_num"="1");
+        MODIFY PARTITION (p202301) SET("replication_num"="1", "storage_policy" 
= "${policy_name}");
         """
 
         sql """
         ALTER TABLE ${tableName}
-        MODIFY PARTITION (p202302) SET("replication_num"="3");
+        MODIFY PARTITION (p202302) SET("replication_num"="3", "storage_policy" 
= "${policy_name}");
         """
     }
 
@@ -476,6 +493,7 @@ suite("modify_replica_use_partition") {
     select * from ${tableName} limit 10
     """
 
+    log.info("wait one minute for migration to be completed")
     // wait one minute for migration to be completed
     sleep(60000)
     // 对比3副本的partition中所有tablets的replicas的rowsets meta是否相同
@@ -509,6 +527,8 @@ suite("modify_replica_use_partition") {
     sql """
     DROP TABLE ${tableName}
     """
-
+} finally {
+    setFeConfig("force_olap_table_replication_num", replicaNum)
+}
 
 }
diff --git 
a/regression-test/suites/cold_heat_separation_p2/modify_replica_use_partition_by_hdfs.groovy
 
b/regression-test/suites/cold_heat_separation_p2/modify_replica_use_partition_by_hdfs.groovy
index 9c9a9c0e1fa..f085a640907 100644
--- 
a/regression-test/suites/cold_heat_separation_p2/modify_replica_use_partition_by_hdfs.groovy
+++ 
b/regression-test/suites/cold_heat_separation_p2/modify_replica_use_partition_by_hdfs.groovy
@@ -18,6 +18,13 @@ import groovy.json.JsonSlurper
 import org.codehaus.groovy.runtime.IOGroovyMethods
 
 suite("modify_replica_use_partition_by_hdfs") {
+if (!enableHdfs()) {
+    logger.info("skip this case because hdfs is not enabled");
+}
+def replicaNum = getFeConfig("force_olap_table_replication_num")
+setFeConfig("force_olap_table_replication_num", 0)
+try {
+
     def fetchBeHttp = { check_func, meta_url ->
         def i = meta_url.indexOf("/api")
         String endPoint = meta_url.substring(0, i)
@@ -62,7 +69,8 @@ suite("modify_replica_use_partition_by_hdfs") {
         return out
     }
 
-    def tableName = "lineitem3"
+    def suffix = UUID.randomUUID().hashCode().abs()
+    def tableName = "lineitem3${suffix}"
     sql """ DROP TABLE IF EXISTS ${tableName} """
     def stream_load_one_part = { partnum ->
         streamLoad {
@@ -129,8 +137,8 @@ suite("modify_replica_use_partition_by_hdfs") {
         return false;
     }
 
-    def resource_name = "test_table_replica_with_data_resource"
-    def policy_name= "test_table_replica_with_data_policy"
+    def resource_name = "test_table_replica_with_data_resource${suffix}"
+    def policy_name= "test_table_replica_with_data_policy${suffix}"
 
     if (check_storage_policy_exist(policy_name)) {
         sql """
@@ -153,12 +161,7 @@ suite("modify_replica_use_partition_by_hdfs") {
             "type"="hdfs",
             "fs.defaultFS"="${getHdfsFs()}",
             "hadoop.username"="${getHdfsUser()}",
-            "hadoop.password"="${getHdfsPasswd()}",
-            "dfs.nameservices" = "my_ha",
-            "dfs.ha.namenodes.my_ha" = "my_namenode1, my_namenode2",
-            "dfs.namenode.rpc-address.my_ha.my_namenode1" = "127.0.0.1:10000",
-            "dfs.namenode.rpc-address.my_ha.my_namenode2" = "127.0.0.1:10000",
-            "dfs.client.failover.proxy.provider" = 
"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
+            "hadoop.password"="${getHdfsPasswd()}"
         );
     """
 
@@ -207,6 +210,7 @@ suite("modify_replica_use_partition_by_hdfs") {
     load_lineitem_table()
 
     // 等待10min,show tablets from table, 预期not_use_storage_policy_tablet_list 的 
RemoteDataSize 为LocalDataSize1,LocalDataSize为0
+    log.info("wait for 10min")
     sleep(600000)
 
 
@@ -215,7 +219,8 @@ suite("modify_replica_use_partition_by_hdfs") {
     """
     log.info( "test tablets not empty")
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    def retry = 100
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -223,6 +228,7 @@ suite("modify_replica_use_partition_by_hdfs") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     assertTrue(tablets.size() > 0)
     def LocalDataSize1 = sizes[0]
     def RemoteDataSize1 = sizes[1]
@@ -236,7 +242,7 @@ suite("modify_replica_use_partition_by_hdfs") {
     if (!isCloudMode()) {
         sql """
         ALTER TABLE ${tableName}
-        MODIFY PARTITION (p202301, p202302) SET("replication_num"="3");
+        MODIFY PARTITION (p202301, p202302) SET("replication_num"="3", 
"storage_policy" = "${policy_name}");
         """
     }
 
@@ -248,19 +254,22 @@ suite("modify_replica_use_partition_by_hdfs") {
     select * from ${tableName} limit 10
     """
     // wait one minute for migration to be completed
-    sleep(60000)
+    // sleep(60000)
+    log.info("wait one minute for migration to be completed")
 
     // 对比所有tablets的replicas的rowsets meta是否相同
     tablets = sql_return_maparray """
     SHOW TABLETS FROM ${tableName}
     """
-    while (tablets.size() != 3 * originSize) {
-        log.info( "tablets clone not finished, sleep 10s")
+    retry = 100
+    while (tablets.size() != 3 * originSize && retry --> 0) {
+        log.info( "tablets clone not finished(tablets.size = 
${tablets.size()}, originSize = ${originSize}), sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
         SHOW TABLETS FROM ${tableName}
         """
     }
+    assertTrue(tablets.size() == 3 * originSize, "tablets clone not finished, 
maybe some error occurred")
     def compactionStatusIdx = tablets[0].size() - 1
     // check rowsets inside the 3 replica
     def iterate_num = tablets.size() / 3;
@@ -334,6 +343,7 @@ suite("modify_replica_use_partition_by_hdfs") {
     assertEquals(RemoteDataSize1, 0)
 
     // 等待10min,show tablets from table, 预期not_use_storage_policy_tablet_list 的 
RemoteDataSize 为LocalDataSize1,LocalDataSize为0
+    log.info("wait for 10min")
     sleep(600000)
 
 
@@ -343,7 +353,8 @@ suite("modify_replica_use_partition_by_hdfs") {
     log.info( "test tablets not empty")
     assertTrue(tablets.size() > 0)
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    retry = 100
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -351,6 +362,7 @@ suite("modify_replica_use_partition_by_hdfs") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     LocalDataSize1 = sizes[0]
     RemoteDataSize1 = sizes[1]
     log.info( "test local size is zero")
@@ -362,7 +374,7 @@ suite("modify_replica_use_partition_by_hdfs") {
     if (!isCloudMode()) {
         sql """
         ALTER TABLE ${tableName}
-        MODIFY PARTITION (p202301, p202302) SET("replication_num"="1");
+        MODIFY PARTITION (p202301, p202302) SET("replication_num"="1", 
"storage_policy" = "${policy_name}");
         """
     }
 
@@ -429,6 +441,7 @@ suite("modify_replica_use_partition_by_hdfs") {
     assertEquals(RemoteDataSize1, 0)
 
     // 等待10min,show tablets from table, 预期not_use_storage_policy_tablet_list 的 
RemoteDataSize 为LocalDataSize1,LocalDataSize为0
+    log.info("wait for 10min")
     sleep(600000)
 
 
@@ -438,7 +451,8 @@ suite("modify_replica_use_partition_by_hdfs") {
     log.info( "test tablets not empty")
     assertTrue(tablets.size() > 0)
     fetchDataSize(sizes, tablets[0])
-    while (sizes[1] == 0) {
+    retry = 100
+    while (sizes[1] == 0 && retry --> 0) {
         log.info( "test remote size is zero, sleep 10s")
         sleep(10000)
         tablets = sql_return_maparray """
@@ -446,6 +460,7 @@ suite("modify_replica_use_partition_by_hdfs") {
         """
         fetchDataSize(sizes, tablets[0])
     }
+    assertTrue(sizes[1] != 0, "remote size is still zero, maybe some error 
occurred")
     LocalDataSize1 = sizes[0]
     RemoteDataSize1 = sizes[1]
     log.info( "test local size is zero")
@@ -457,12 +472,12 @@ suite("modify_replica_use_partition_by_hdfs") {
     if (!isCloudMode()) {
         sql """
         ALTER TABLE ${tableName}
-        MODIFY PARTITION (p202301) SET("replication_num"="1");
+        MODIFY PARTITION (p202301) SET("replication_num"="1", "storage_policy" 
= "${policy_name}");
         """
 
         sql """
         ALTER TABLE ${tableName}
-        MODIFY PARTITION (p202302) SET("replication_num"="3");
+        MODIFY PARTITION (p202302) SET("replication_num"="3", "storage_policy" 
= "${policy_name}");
         """
     }
 
@@ -475,6 +490,7 @@ suite("modify_replica_use_partition_by_hdfs") {
     """
 
     // wait one minute for migration to be completed
+    log.info("wait one minute for migration to be completed")
     sleep(60000)
     // 对比3副本的partition中所有tablets的replicas的rowsets meta是否相同
     tablets = sql_return_maparray """
@@ -508,5 +524,8 @@ suite("modify_replica_use_partition_by_hdfs") {
     DROP TABLE ${tableName}
     """
 
+} finally {
+    setFeConfig("force_olap_table_replication_num", replicaNum)
+}
 
 }
diff --git 
a/regression-test/suites/cold_heat_separation_p2/table_modify_resouce_and_policy.groovy
 
b/regression-test/suites/cold_heat_separation_p2/table_modify_resouce_and_policy.groovy
index c23a9eea6df..ec8fcc8f255 100644
--- 
a/regression-test/suites/cold_heat_separation_p2/table_modify_resouce_and_policy.groovy
+++ 
b/regression-test/suites/cold_heat_separation_p2/table_modify_resouce_and_policy.groovy
@@ -47,7 +47,8 @@ suite("table_modify_resouce") {
     }
     // used as passing out parameter to fetchDataSize
     List<Long> sizes = [-1, -1]
-    def tableName = "lineitem4"
+    def suffix = UUID.randomUUID().hashCode().abs()
+    def tableName = "lineitem4${suffix}"
     sql """ DROP TABLE IF EXISTS ${tableName} """
     def stream_load_one_part = { partnum ->
         streamLoad {
@@ -114,8 +115,8 @@ suite("table_modify_resouce") {
         return false;
     }
 
-    def resource_name = "test_table_with_data_resource_modify_1"
-    def policy_name= "test_table_with_data_policy_modify_1"
+    def resource_name = "test_table_with_data_resource_modify_1${suffix}"
+    def policy_name= "test_table_with_data_policy_modify_1${suffix}"
 
     if (check_storage_policy_exist(policy_name)) {
         sql """
@@ -206,7 +207,7 @@ suite("table_modify_resouce") {
         """
         fetchDataSize(sizes, tablets[0])
         try_times -= 1
-        assertTrue(try_times > 0)
+        assertTrue(try_times > 0, "remote size is still zero, maybe some error 
occurred")
     }
 
     // 修改resource和policy到新值然后查看remote data size是否能对上
@@ -227,7 +228,7 @@ suite("table_modify_resouce") {
     """
 
 
-    def tablets2 = sql """
+    def tablets2 = sql_return_maparray """
     SHOW TABLETS FROM ${tableName}
     """
     // [8] local data size, [9] remote data size
@@ -289,7 +290,7 @@ suite("table_modify_resouce") {
         """
         fetchDataSize(sizes, tablets[0])
         try_times -= 1
-        assertTrue(try_times > 0)
+        assertTrue(try_times > 0, "remote size is still zero, maybe some error 
occurred")
     }
 
     // 修改resource和policy到新值然后查看remote data size是否能对上
@@ -317,7 +318,7 @@ suite("table_modify_resouce") {
     log.info( "test all remote size not zero")
     for (int i = 0; i < tablets2.size(); i++) {
         fetchDataSize(sizes, tablets2[i])
-        assertTrue(sizes[1] > 0)
+        assertTrue(sizes[1] > 0, tablets2[i].TabletId + " remote size is " + 
sizes[1] + ", no greater than 0, MetaUrl is " + tablets2[i].MetaUrl)
     }
 
 
diff --git 
a/regression-test/suites/cold_heat_separation_p2/table_modify_resouce_and_policy_by_hdfs.groovy
 
b/regression-test/suites/cold_heat_separation_p2/table_modify_resouce_and_policy_by_hdfs.groovy
index a2c6f32cd63..601d42ab0d2 100644
--- 
a/regression-test/suites/cold_heat_separation_p2/table_modify_resouce_and_policy_by_hdfs.groovy
+++ 
b/regression-test/suites/cold_heat_separation_p2/table_modify_resouce_and_policy_by_hdfs.groovy
@@ -18,6 +18,9 @@ import groovy.json.JsonSlurper
 import org.codehaus.groovy.runtime.IOGroovyMethods
 
 suite("table_modify_resouce_by_hdfs") {
+    if (!enableHdfs()) {
+        logger.info("skip this case because hdfs is not enabled");
+    }
     def fetchBeHttp = { check_func, meta_url ->
         def i = meta_url.indexOf("/api")
         String endPoint = meta_url.substring(0, i)
@@ -47,7 +50,8 @@ suite("table_modify_resouce_by_hdfs") {
     }
     // used as passing out parameter to fetchDataSize
     List<Long> sizes = [-1, -1]
-    def tableName = "lineitem4"
+    def suffix = UUID.randomUUID().hashCode().abs()
+    def tableName = "lineitem4${suffix}"
     sql """ DROP TABLE IF EXISTS ${tableName} """
     def stream_load_one_part = { partnum ->
         streamLoad {
@@ -114,8 +118,8 @@ suite("table_modify_resouce_by_hdfs") {
         return false;
     }
 
-    def resource_name = "test_table_with_data_resource_modify_1"
-    def policy_name= "test_table_with_data_policy_modify_1"
+    def resource_name = "test_table_with_data_resource_modify_1${suffix}"
+    def policy_name= "test_table_with_data_policy_modify_1${suffix}"
 
     if (check_storage_policy_exist(policy_name)) {
         sql """
@@ -138,12 +142,7 @@ suite("table_modify_resouce_by_hdfs") {
             "type"="hdfs",
             "fs.defaultFS"="${getHdfsFs()}",
             "hadoop.username"="${getHdfsUser()}",
-            "hadoop.password"="${getHdfsPasswd()}",
-            "dfs.nameservices" = "my_ha",
-            "dfs.ha.namenodes.my_ha" = "my_namenode1, my_namenode2",
-            "dfs.namenode.rpc-address.my_ha.my_namenode1" = "127.0.0.1:10000",
-            "dfs.namenode.rpc-address.my_ha.my_namenode2" = "127.0.0.1:10000",
-            "dfs.client.failover.proxy.provider" = 
"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
+            "hadoop.password"="${getHdfsPasswd()}"
         );
     """
 
@@ -204,7 +203,7 @@ suite("table_modify_resouce_by_hdfs") {
         """
         fetchDataSize(sizes, tablets[0])
         try_times -= 1
-        assertTrue(try_times > 0)
+        assertTrue(try_times > 0, "remote size is still zero, maybe some error 
occurred")
     }
 
     // 修改resource和policy到新值然后查看remote data size是否能对上
@@ -287,7 +286,7 @@ suite("table_modify_resouce_by_hdfs") {
         """
         fetchDataSize(sizes, tablets[0])
         try_times -= 1
-        assertTrue(try_times > 0)
+        assertTrue(try_times > 0, "remote size is still zero, maybe some error 
occurred")
     }
 
     // 修改resource和policy到新值然后查看remote data size是否能对上
@@ -315,7 +314,7 @@ suite("table_modify_resouce_by_hdfs") {
     log.info( "test all remote size not zero")
     for (int i = 0; i < tablets2.size(); i++) {
         fetchDataSize(sizes, tablets2[i])
-        assertTrue(sizes[1] > 0)
+        assertTrue(sizes[1] > 0, tablets2[i].TabletId + " remote size is " + 
sizes[1] + ", no greater than 0, MetaUrl is " + tablets2[i].MetaUrl)
     }
 
 
diff --git 
a/regression-test/suites/cold_heat_separation_p2/test_show_storage_policy_using.groovy
 
b/regression-test/suites/cold_heat_separation_p2/test_show_storage_policy_using.groovy
index 73835a0c2cc..a6277e663d7 100644
--- 
a/regression-test/suites/cold_heat_separation_p2/test_show_storage_policy_using.groovy
+++ 
b/regression-test/suites/cold_heat_separation_p2/test_show_storage_policy_using.groovy
@@ -120,7 +120,7 @@ suite("test_show_storage_policy_using") {
         );
     """
 
-    show_result = sql """
+    def show_result = sql """
         show storage policy using for ${policy_name}
     """
     assertEquals(show_result.size(), 2)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to