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

dataroaring 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 c30c1d2436d [branch-2.1] Picks "[opt](delete) Delete job should retry 
for failure that is not DELETE_INVALID_XXX #37834" (#38032)
c30c1d2436d is described below

commit c30c1d2436ddeda108c3197b5b34eee4c5778860
Author: bobhan1 <bh2444151...@outlook.com>
AuthorDate: Thu Jul 18 14:50:30 2024 +0800

    [branch-2.1] Picks "[opt](delete) Delete job should retry for failure that 
is not DELETE_INVALID_XXX #37834" (#38032)
    
    ## Proposed changes
    
    picks https://github.com/apache/doris/pull/37834 and
    https://github.com/apache/doris/pull/38043
---
 be/src/olap/delete_handler.cpp                     | 31 ++++++-------
 be/src/olap/push_handler.cpp                       |  4 ++
 be/test/olap/delete_handler_test.cpp               | 52 +++++++++++-----------
 .../java/org/apache/doris/master/MasterImpl.java   |  8 ++--
 .../test_delete_from_timeout.out                   |  8 ++++
 .../test_delete_from_timeout.groovy                | 27 ++++++-----
 6 files changed, 75 insertions(+), 55 deletions(-)

diff --git a/be/src/olap/delete_handler.cpp b/be/src/olap/delete_handler.cpp
index 8d85eb84bab..2ab3786b4d0 100644
--- a/be/src/olap/delete_handler.cpp
+++ b/be/src/olap/delete_handler.cpp
@@ -96,7 +96,7 @@ Status DeleteHandler::generate_delete_predicate(const 
TabletSchema& schema,
                                     dp->param<std::string>("error_msg"));
     })
     if (conditions.empty()) {
-        return Status::Error<DELETE_INVALID_PARAMETERS>(
+        return Status::Error<ErrorCode::INVALID_ARGUMENT>(
                 "invalid parameters for store_cond. condition_size={}", 
conditions.size());
     }
 
@@ -127,7 +127,7 @@ Status DeleteHandler::generate_delete_predicate(const 
TabletSchema& schema,
             if (TCondition tmp; !DeleteHandler::parse_condition(condition_str, 
&tmp)) {
                 LOG(WARNING) << "failed to parse condition_str, condtion="
                              << ThriftDebugString(condition);
-                return Status::Error<DELETE_INVALID_CONDITION>(
+                return Status::Error<ErrorCode::INVALID_ARGUMENT>(
                         "failed to parse condition_str, condtion={}", 
ThriftDebugString(condition));
             }
             VLOG_NOTICE << __PRETTY_FUNCTION__ << " condition_str: " << 
condition_str;
@@ -232,8 +232,8 @@ Status DeleteHandler::check_condition_valid(const 
TabletSchema& schema, const TC
     // Check whether the column exists
     int32_t field_index = schema.field_index(cond.column_name);
     if (field_index < 0) {
-        return Status::Error<DELETE_INVALID_CONDITION>("field is not existent. 
[field_index={}]",
-                                                       field_index);
+        return Status::Error<ErrorCode::INVALID_ARGUMENT>("field is not 
existent. [field_index={}]",
+                                                          field_index);
     }
 
     // Delete condition should only applied on key columns or duplicate key 
table, and
@@ -242,21 +242,21 @@ Status DeleteHandler::check_condition_valid(const 
TabletSchema& schema, const TC
 
     if (column.type() == FieldType::OLAP_FIELD_TYPE_DOUBLE ||
         column.type() == FieldType::OLAP_FIELD_TYPE_FLOAT) {
-        return Status::Error<DELETE_INVALID_CONDITION>("data type is float or 
double.");
+        return Status::Error<ErrorCode::INVALID_ARGUMENT>("data type is float 
or double.");
     }
 
     // Check operator and operands size are matched.
     if ("*=" != cond.condition_op && "!*=" != cond.condition_op &&
         cond.condition_values.size() != 1) {
-        return Status::Error<DELETE_INVALID_CONDITION>("invalid condition 
value size. [size={}]",
-                                                       
cond.condition_values.size());
+        return Status::Error<ErrorCode::INVALID_ARGUMENT>("invalid condition 
value size. [size={}]",
+                                                          
cond.condition_values.size());
     }
 
     // Check each operand is valid
     for (const auto& condition_value : cond.condition_values) {
         if (!is_condition_value_valid(column, cond.condition_op, 
condition_value)) {
-            return Status::Error<DELETE_INVALID_CONDITION>("invalid condition 
value. [value={}]",
-                                                           condition_value);
+            return Status::Error<ErrorCode::INVALID_ARGUMENT>("invalid 
condition value. [value={}]",
+                                                              condition_value);
         }
     }
 
@@ -270,15 +270,16 @@ Status DeleteHandler::check_condition_valid(const 
TabletSchema& schema, const TC
         const auto& err_msg =
                 fmt::format("column id does not exists in table={}, schema 
version={},",
                             schema.table_id(), schema.schema_version());
-        return Status::Error<DELETE_INVALID_CONDITION>(err_msg);
+        return Status::Error<ErrorCode::INVALID_ARGUMENT>(err_msg);
     }
     if (!iequal(schema.column_by_uid(cond.column_unique_id).name(), 
cond.column_name)) {
         const auto& err_msg = fmt::format(
-                "colum name={} does not belongs to column uid={}, which column 
name={}, "
+                "colum name={} does not belongs to column uid={}, which "
+                "column name={}, "
                 "delete_cond.column_name ={}",
                 cond.column_name, cond.column_unique_id,
                 schema.column_by_uid(cond.column_unique_id).name(), 
cond.column_name);
-        return Status::Error<DELETE_INVALID_CONDITION>(err_msg);
+        return Status::Error<ErrorCode::INVALID_ARGUMENT>(err_msg);
     }
 
     return Status::OK();
@@ -286,7 +287,7 @@ Status DeleteHandler::check_condition_valid(const 
TabletSchema& schema, const TC
 
 Status DeleteHandler::parse_condition(const DeleteSubPredicatePB& sub_cond, 
TCondition* condition) {
     if (!sub_cond.has_column_name() || !sub_cond.has_op() || 
!sub_cond.has_cond_value()) {
-        return Status::Error<DELETE_INVALID_PARAMETERS>(
+        return Status::Error<ErrorCode::INVALID_ARGUMENT>(
                 "fail to parse condition. condition={} {} {}", 
sub_cond.column_name(),
                 sub_cond.op(), sub_cond.cond_value());
     }
@@ -332,8 +333,8 @@ Status DeleteHandler::parse_condition(const std::string& 
condition_str, TConditi
                     << "]";
     }
     if (!matched) {
-        return Status::Error<DELETE_INVALID_PARAMETERS>("fail to sub 
condition. condition={}",
-                                                        condition_str);
+        return Status::Error<ErrorCode::INVALID_ARGUMENT>("fail to sub 
condition. condition={}",
+                                                          condition_str);
     }
 
     condition->column_name = what[1].str();
diff --git a/be/src/olap/push_handler.cpp b/be/src/olap/push_handler.cpp
index 09e4228c37c..0bf3a23f0ab 100644
--- a/be/src/olap/push_handler.cpp
+++ b/be/src/olap/push_handler.cpp
@@ -118,6 +118,10 @@ Status 
PushHandler::_do_streaming_ingestion(TabletSharedPtr tablet, const TPushR
     }
 
     std::shared_lock base_migration_rlock(tablet->get_migration_lock(), 
std::try_to_lock);
+    DBUG_EXECUTE_IF("PushHandler::_do_streaming_ingestion.try_lock_fail", {
+        return Status::Error<TRY_LOCK_FAILED>(
+                "PushHandler::_do_streaming_ingestion get lock failed");
+    })
     if (!base_migration_rlock.owns_lock()) {
         return Status::Error<TRY_LOCK_FAILED>(
                 "PushHandler::_do_streaming_ingestion get lock failed");
diff --git a/be/test/olap/delete_handler_test.cpp 
b/be/test/olap/delete_handler_test.cpp
index f36aeac84cd..b30db5abe03 100644
--- a/be/test/olap/delete_handler_test.cpp
+++ b/be/test/olap/delete_handler_test.cpp
@@ -438,7 +438,7 @@ TEST_F(TestDeleteConditionHandler, 
StoreCondInvalidParameters) {
     DeletePredicatePB del_pred;
     Status failed_res = 
DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(),
                                                                  conditions, 
&del_pred);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_PARAMETERS>(""), failed_res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), failed_res);
 }
 
 // 检测过滤条件中指定的列不存在,或者列不符合要求
@@ -454,7 +454,7 @@ TEST_F(TestDeleteConditionHandler, 
StoreCondNonexistentColumn) {
     DeletePredicatePB del_pred;
     Status failed_res = 
DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(),
                                                                  conditions, 
&del_pred);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), failed_res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), failed_res);
 
     // 'v'是value列
     conditions.clear();
@@ -661,7 +661,7 @@ TEST_F(TestDeleteConditionHandler2, InvalidConditionValue) {
     DeletePredicatePB del_pred_1;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_1);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     // 测试k1的值越下界,k1类型为int8
     conditions[0].condition_values.clear();
@@ -669,7 +669,7 @@ TEST_F(TestDeleteConditionHandler2, InvalidConditionValue) {
     DeletePredicatePB del_pred_2;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_2);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     // 测试k2的值越上界,k2类型为int16
     conditions[0].condition_values.clear();
@@ -678,7 +678,7 @@ TEST_F(TestDeleteConditionHandler2, InvalidConditionValue) {
     DeletePredicatePB del_pred_3;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_3);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     // 测试k2的值越下界,k2类型为int16
     conditions[0].condition_values.clear();
@@ -686,7 +686,7 @@ TEST_F(TestDeleteConditionHandler2, InvalidConditionValue) {
     DeletePredicatePB del_pred_4;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_4);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     // 测试k3的值越上界,k3类型为int32
     conditions[0].condition_values.clear();
@@ -695,7 +695,7 @@ TEST_F(TestDeleteConditionHandler2, InvalidConditionValue) {
     DeletePredicatePB del_pred_5;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_5);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     // 测试k3的值越下界,k3类型为int32
     conditions[0].condition_values.clear();
@@ -703,7 +703,7 @@ TEST_F(TestDeleteConditionHandler2, InvalidConditionValue) {
     DeletePredicatePB del_pred_6;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_6);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     // 测试k4的值越上界,k2类型为int64
     conditions[0].condition_values.clear();
@@ -712,7 +712,7 @@ TEST_F(TestDeleteConditionHandler2, InvalidConditionValue) {
     DeletePredicatePB del_pred_7;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_7);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     // 测试k4的值越下界,k1类型为int64
     conditions[0].condition_values.clear();
@@ -720,7 +720,7 @@ TEST_F(TestDeleteConditionHandler2, InvalidConditionValue) {
     DeletePredicatePB del_pred_8;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_8);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     // 测试k5的值越上界,k5类型为int128
     conditions[0].condition_values.clear();
@@ -729,7 +729,7 @@ TEST_F(TestDeleteConditionHandler2, InvalidConditionValue) {
     DeletePredicatePB del_pred_9;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_9);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     // 测试k5的值越下界,k5类型为int128
     conditions[0].condition_values.clear();
@@ -737,7 +737,7 @@ TEST_F(TestDeleteConditionHandler2, InvalidConditionValue) {
     DeletePredicatePB del_pred_10;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_10);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     // 测试k9整数部分长度过长,k9类型为decimal, precision=6, frac=3
     conditions[0].condition_values.clear();
@@ -746,7 +746,7 @@ TEST_F(TestDeleteConditionHandler2, InvalidConditionValue) {
     DeletePredicatePB del_pred_11;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_11);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     // 测试k9小数部分长度过长,k9类型为decimal, precision=6, frac=3
     conditions[0].condition_values.clear();
@@ -754,7 +754,7 @@ TEST_F(TestDeleteConditionHandler2, InvalidConditionValue) {
     DeletePredicatePB del_pred_12;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_12);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     // 测试k9没有小数部分,但包含小数点
     conditions[0].condition_values.clear();
@@ -762,7 +762,7 @@ TEST_F(TestDeleteConditionHandler2, InvalidConditionValue) {
     DeletePredicatePB del_pred_13;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_13);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     // 测试k10类型的过滤值不符合对应格式,k10为date
     conditions[0].condition_values.clear();
@@ -771,21 +771,21 @@ TEST_F(TestDeleteConditionHandler2, 
InvalidConditionValue) {
     DeletePredicatePB del_pred_14;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_14);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     conditions[0].condition_values.clear();
     conditions[0].condition_values.push_back("2013-64-01");
     DeletePredicatePB del_pred_15;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_15);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     conditions[0].condition_values.clear();
     conditions[0].condition_values.push_back("2013-01-40");
     DeletePredicatePB del_pred_16;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_16);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     // 测试k11类型的过滤值不符合对应格式,k11为datetime
     conditions[0].condition_values.clear();
@@ -794,42 +794,42 @@ TEST_F(TestDeleteConditionHandler2, 
InvalidConditionValue) {
     DeletePredicatePB del_pred_17;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_17);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     conditions[0].condition_values.clear();
     conditions[0].condition_values.push_back("2013-64-01 00:00:00");
     DeletePredicatePB del_pred_18;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_18);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     conditions[0].condition_values.clear();
     conditions[0].condition_values.push_back("2013-01-40 00:00:00");
     DeletePredicatePB del_pred_19;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_19);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     conditions[0].condition_values.clear();
     conditions[0].condition_values.push_back("2013-01-01 24:00:00");
     DeletePredicatePB del_pred_20;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_20);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     conditions[0].condition_values.clear();
     conditions[0].condition_values.push_back("2013-01-01 00:60:00");
     DeletePredicatePB del_pred_21;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_21);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     conditions[0].condition_values.clear();
     conditions[0].condition_values.push_back("2013-01-01 00:00:60");
     DeletePredicatePB del_pred_22;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_22);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     // 测试k12和k13类型的过滤值过长,k12,k13类型分别为string(64), varchar(64)
     conditions[0].condition_values.clear();
@@ -841,7 +841,7 @@ TEST_F(TestDeleteConditionHandler2, InvalidConditionValue) {
     DeletePredicatePB del_pred_23;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_23);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 
     conditions[0].condition_values.clear();
     conditions[0].column_name = "k13";
@@ -852,7 +852,7 @@ TEST_F(TestDeleteConditionHandler2, InvalidConditionValue) {
     DeletePredicatePB del_pred_24;
     res = DeleteHandler::generate_delete_predicate(*tablet->tablet_schema(), 
conditions,
                                                    &del_pred_24);
-    EXPECT_EQ(Status::Error<DELETE_INVALID_CONDITION>(""), res);
+    EXPECT_EQ(Status::Error<INVALID_ARGUMENT>(""), res);
 }
 
 class TestDeleteHandler : public testing::Test {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/master/MasterImpl.java 
b/fe/fe-core/src/main/java/org/apache/doris/master/MasterImpl.java
index 12d908ff317..507378851a0 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/master/MasterImpl.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/master/MasterImpl.java
@@ -305,10 +305,10 @@ public class MasterImpl {
 
         if (request.getTaskStatus().getStatusCode() != TStatusCode.OK) {
             if (pushTask.getPushType() == TPushType.DELETE) {
-                // DeleteHandler may return status code 
DELETE_INVALID_CONDITION and DELETE_INVALID_PARAMETERS,
-                // we don't need to retry if meet them.
-                // note that they will be converted to 
TStatusCode.INTERNAL_ERROR when being sent from be to fe
-                if (request.getTaskStatus().getStatusCode() == 
TStatusCode.INTERNAL_ERROR) {
+                // we don't need to retry if the returned status code is 
DELETE_INVALID_CONDITION
+                // or DELETE_INVALID_PARAMETERS
+                // note that they will be converted to 
TStatusCode.INVALID_ARGUMENT when being sent from be to fe
+                if (request.getTaskStatus().getStatusCode() == 
TStatusCode.INVALID_ARGUMENT) {
                     
pushTask.countDownToZero(request.getTaskStatus().getStatusCode(),
                             task.getBackendId() + ": " + 
request.getTaskStatus().getErrorMsgs().toString());
                     AgentTaskQueue.removeTask(backendId, 
TTaskType.REALTIME_PUSH, signature);
diff --git 
a/regression-test/data/fault_injection_p0/test_delete_from_timeout.out 
b/regression-test/data/fault_injection_p0/test_delete_from_timeout.out
new file mode 100644
index 00000000000..1703506a5af
--- /dev/null
+++ b/regression-test/data/fault_injection_p0/test_delete_from_timeout.out
@@ -0,0 +1,8 @@
+-- This file is automatically generated. You should know what you did if you 
want to edit this
+-- !sql --
+false  -9999782574499444.2     -25
+true   99.9    234
+
+-- !sql --
+true   99.9    234
+
diff --git 
a/regression-test/suites/fault_injection_p0/test_delete_from_timeout.groovy 
b/regression-test/suites/fault_injection_p0/test_delete_from_timeout.groovy
index 2d5bf41b3db..7d1efdc9782 100644
--- a/regression-test/suites/fault_injection_p0/test_delete_from_timeout.groovy
+++ b/regression-test/suites/fault_injection_p0/test_delete_from_timeout.groovy
@@ -34,26 +34,33 @@ suite("test_delete_from_timeout","nonConcurrent") {
     GetDebugPoint().clearDebugPointsForAllBEs()
 
     try {
-        sql "insert into ${tableName} values(1, 99.9, 234);"
+        sql "insert into ${tableName} values(1, 99.9, 234), (false, 
-9999782574499444.2, -25);"
+        qt_sql "select * from ${tableName} order by col1, col2, col3;"
+
         
GetDebugPoint().enableDebugPointForAllBEs("DeleteHandler::generate_delete_predicate.inject_failure",
-            [error_code: -1900 /* DELETE_INVALID_CONDITION */, error_msg: 
"data type is float or double."])
+            [error_code: 33 /* INVALID_ARGUMENT */, error_msg: "invalid 
parameters for store_cond. condition_size=1"])
         test {
             sql """delete from ${tableName} where col1 = "false" and col2 = 
"-9999782574499444.2" and col3 = "-25"; """
-            exception "data type is float or double."
+            exception "invalid parameters for store_cond. condition_size=1"
         }
 
         GetDebugPoint().clearDebugPointsForAllBEs()
 
-        
GetDebugPoint().enableDebugPointForAllBEs("DeleteHandler::generate_delete_predicate.inject_failure",
-            [error_code: -1903 /* DELETE_INVALID_PARAMETERS */, error_msg: 
"invalid parameters for store_cond. condition_size=1"])
-        test {
-            sql """delete from ${tableName} where col1 = "false" and col2 = 
"-9999782574499444.2" and col3 = "-25"; """
-            exception "invalid parameters for store_cond. condition_size=1"
+        
GetDebugPoint().enableDebugPointForAllBEs("PushHandler::_do_streaming_ingestion.try_lock_fail")
+
+        t1 = Thread.start {
+            sleep(15000)
+            
GetDebugPoint().disableDebugPointForAllBEs("PushHandler::_do_streaming_ingestion.try_lock_fail")
         }
+
+        sql """delete from ${tableName} where col1 = "false" and col2 = 
"-9999782574499444.2" and col3 = "-25"; """
+        t1.join()
+        qt_sql "select * from ${tableName} order by col1, col2, col3;"
+
     } catch (Exception e) {
         logger.info(e.getMessage())
-        AssertTrue(false) 
+        assertTrue(false) 
     } finally {
-        
GetDebugPoint().disableDebugPointForAllBEs("DeleteHandler::generate_delete_predicate.inject_failure")
+        GetDebugPoint().clearDebugPointsForAllBEs()
     }
 }
\ No newline at end of file


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

Reply via email to