@@ -8266,6 +8266,50 @@ TEST(MetaServiceTxnStoreRetryableTest, DoNotReturnRetryableCode) {
82668266 config::txn_store_retry_times = retry_times;
82678267}
82688268
8269+ TEST(MetaServiceTxnStoreRetryableTest, RetryMaybeCommittedCode) {
8270+ size_t index = 0;
8271+ SyncPoint::get_instance()->set_call_back("update_delete_bitmap:commit:err", [&](auto&& args) {
8272+ ++index;
8273+ *doris::try_any_cast<TxnErrorCode*>(args[2]) = TxnErrorCode::TXN_MAYBE_COMMITTED;
8274+ });
8275+ SyncPoint::get_instance()->enable_processing();
8276+ int32_t retry_times = config::txn_store_retry_times;
8277+ bool enable_retry = config::enable_txn_store_retry;
8278+ int64_t max_txn_commit_byte = config::max_txn_commit_byte;
8279+ config::txn_store_retry_times = 2;
8280+ config::enable_txn_store_retry = true;
8281+ config::max_txn_commit_byte = 1;
8282+
8283+ auto service = get_meta_service();
8284+
8285+ brpc::Controller cntl;
8286+ UpdateDeleteBitmapRequest req;
8287+ UpdateDeleteBitmapResponse resp;
8288+ req.set_cloud_unique_id("test_cloud_unique_id");
8289+ req.set_table_id(100);
8290+ req.set_partition_id(123);
8291+ req.set_lock_id(-3);
8292+ req.set_without_lock(true);
8293+ req.set_initiator(-1);
8294+ req.set_tablet_id(333);
8295+ req.add_rowset_ids("r1");
8296+ req.add_segment_ids(0);
8297+ req.add_versions(2);
8298+ req.add_segment_delete_bitmaps("abc");
8299+
8300+ service->update_delete_bitmap(&cntl, &req, &resp, nullptr);
8301+
8302+ ASSERT_EQ(resp.status().code(), MetaServiceCode::KV_TXN_MAYBE_COMMITTED)
8303+ << " status is " << resp.status().msg() << ", code=" << resp.status().code();
8304+ EXPECT_GE(index, static_cast<size_t>(config::txn_store_retry_times + 1));
8305+
8306+ SyncPoint::get_instance()->disable_processing();
8307+ SyncPoint::get_instance()->clear_all_call_backs();
8308+ config::txn_store_retry_times = retry_times;
8309+ config::enable_txn_store_retry = enable_retry;
8310+ config::max_txn_commit_byte = max_txn_commit_byte;
8311+ }
8312+
82698313TEST(MetaServiceTest, GetClusterStatusTest) {
82708314 auto meta_service = get_meta_service();
82718315
0 commit comments