diff --git a/mittest/simple_server/CMakeLists.txt b/mittest/simple_server/CMakeLists.txt index 478297aa88..96f6d500b9 100644 --- a/mittest/simple_server/CMakeLists.txt +++ b/mittest/simple_server/CMakeLists.txt @@ -97,12 +97,12 @@ ob_unittest_observer(test_mds_recover test_mds_recover.cpp) ob_unittest_observer(test_keep_alive_min_start_scn test_keep_alive_min_start_scn.cpp) ob_unittest_observer(test_ls_replica test_ls_replica.cpp) # TODO(muwei.ym): open later -#ob_ha_unittest_observer(test_transfer_handler storage_ha/test_transfer_handler.cpp) -#ob_ha_unittest_observer(test_transfer_and_restart_basic storage_ha/test_transfer_and_restart_basic.cpp) -#ob_ha_unittest_observer(test_transfer_start_stage_restart_without_mds_flush storage_ha/test_transfer_start_stage_restart_without_mds_flush.cpp) -#ob_ha_unittest_observer(test_transfer_doing_stage_restart_without_mds_flush storage_ha/test_transfer_doing_stage_restart_without_mds_flush.cpp) -#ob_ha_unittest_observer(test_transfer_complete_restart_without_mds_flush storage_ha/test_transfer_complete_restart_without_mds_flush.cpp) -#ob_ha_unittest_observer(test_transfer_doing_stage_restart_with_mds_flush storage_ha/test_transfer_doing_stage_restart_with_mds_flush.cpp) -#ob_ha_unittest_observer(test_transfer_complete_restart_with_mds_flush storage_ha/test_transfer_complete_restart_with_mds_flush.cpp) -#ob_ha_unittest_observer(test_transfer_with_empty_shell storage_ha/test_transfer_with_empty_shell.cpp) +ob_ha_unittest_observer(test_transfer_handler storage_ha/test_transfer_handler.cpp) +ob_ha_unittest_observer(test_transfer_and_restart_basic storage_ha/test_transfer_and_restart_basic.cpp) +ob_ha_unittest_observer(test_transfer_start_stage_restart_without_mds_flush storage_ha/test_transfer_start_stage_restart_without_mds_flush.cpp) +ob_ha_unittest_observer(test_transfer_doing_stage_restart_without_mds_flush storage_ha/test_transfer_doing_stage_restart_without_mds_flush.cpp) +ob_ha_unittest_observer(test_transfer_complete_restart_without_mds_flush storage_ha/test_transfer_complete_restart_without_mds_flush.cpp) +ob_ha_unittest_observer(test_transfer_doing_stage_restart_with_mds_flush storage_ha/test_transfer_doing_stage_restart_with_mds_flush.cpp) +ob_ha_unittest_observer(test_transfer_complete_restart_with_mds_flush storage_ha/test_transfer_complete_restart_with_mds_flush.cpp) +ob_ha_unittest_observer(test_transfer_with_empty_shell storage_ha/test_transfer_with_empty_shell.cpp) errsim_ha_unittest_observer(errsim_test_transfer_handler errsim/storage_ha/errsim_test_transfer_handler.cpp) diff --git a/mittest/simple_server/storage_ha/test_transfer_and_restart_basic.cpp b/mittest/simple_server/storage_ha/test_transfer_and_restart_basic.cpp index 9029473c34..e17b007e5d 100644 --- a/mittest/simple_server/storage_ha/test_transfer_and_restart_basic.cpp +++ b/mittest/simple_server/storage_ha/test_transfer_and_restart_basic.cpp @@ -29,7 +29,7 @@ #include "storage/tablet/ob_tablet.h" #include "storage/tx_storage/ob_ls_service.h" -using namespace unittest; +using namespace oceanbase::unittest; namespace oceanbase { @@ -250,13 +250,13 @@ TEST_F(TestTransferRestart, observer_restart_basic) } // namespace oceanbase int main(int argc, char **argv) { - unittest::init_log_and_gtest(argc, argv); + oceanbase::unittest::init_log_and_gtest(argc, argv); OB_LOGGER.set_log_level("INFO"); ::testing::InitGoogleTest(&argc, argv); int ret = 0; int time_sec = 0; - ObSimpleServerRestartHelper restart_helper(argc, argv, TEST_FILE_NAME, BORN_CASE_NAME, - RESTART_CASE_NAME); + ObSimpleServerRestartHelper restart_helper(argc, argv, oceanbase::storage::TEST_FILE_NAME, oceanbase::storage::BORN_CASE_NAME, + oceanbase::storage::RESTART_CASE_NAME); restart_helper.set_sleep_sec(time_sec); restart_helper.run(); return ret; diff --git a/mittest/simple_server/storage_ha/test_transfer_complete_restart_with_mds_flush.cpp b/mittest/simple_server/storage_ha/test_transfer_complete_restart_with_mds_flush.cpp index 46f81d13a0..545778ba74 100644 --- a/mittest/simple_server/storage_ha/test_transfer_complete_restart_with_mds_flush.cpp +++ b/mittest/simple_server/storage_ha/test_transfer_complete_restart_with_mds_flush.cpp @@ -29,7 +29,7 @@ #include "storage/tablet/ob_tablet.h" #include "storage/tx_storage/ob_ls_service.h" -using namespace unittest; +using namespace oceanbase::unittest; namespace oceanbase { @@ -210,9 +210,14 @@ TEST_F(TestTransferHandler, prepare_valid_data) sql.reset(); ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("select object_id from oceanbase.DBA_OBJECTS where OBJECT_NAME='ttt2'")); ASSERT_EQ(OB_SUCCESS, read_sql(sql_proxy2, sql, g_batch_part_list)); + + //create other ls by cluster table + sql.reset(); + ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("create table part_table_with_dup(c1 int) duplicate_scope = 'CLUSTER' partition by hash(c1) partitions 4")); + ASSERT_EQ(OB_SUCCESS, sql_proxy2.write(sql.ptr(), affected_rows)); } -TEST_F(TestTransferHandler, test_transfer_1001_to_1_with_transfer_finish_without_mds_flush) +TEST_F(TestTransferHandler, test_transfer_1001_to_1002_with_transfer_finish_without_mds_flush) { int ret = OB_SUCCESS; ObMySQLProxy &inner_sql_proxy = get_curr_observer().get_mysql_proxy(); @@ -233,12 +238,12 @@ TEST_F(TestTransferHandler, test_transfer_1001_to_1_with_transfer_finish_without ObTenantTransferService *tenant_transfer = MTL(ObTenantTransferService*); ASSERT_TRUE(OB_NOT_NULL(tenant_transfer)); - //title: 1001 ls transfer to 1 ls + //title: 1001 ls transfer to 1002 ls // generate transfer task ObTransferTaskID task_id; ObMySQLTransaction trans; ASSERT_EQ(OB_SUCCESS, trans.start(&inner_sql_proxy, g_tenant_id)); - ASSERT_EQ(OB_SUCCESS, tenant_transfer->generate_transfer_task(trans, ObLSID(1001), ObLSID(1), + ASSERT_EQ(OB_SUCCESS, tenant_transfer->generate_transfer_task(trans, ObLSID(1001), ObLSID(1002), g_part_list, ObBalanceTaskID(123), task_id)); if (trans.is_started()) { int tmp_ret = OB_SUCCESS; @@ -272,13 +277,13 @@ TEST_F(TestTransferRestart, observer_restart_when_transfer_finish_without_flush) } // namespace oceanbase int main(int argc, char **argv) { - unittest::init_log_and_gtest(argc, argv); + oceanbase::unittest::init_log_and_gtest(argc, argv); OB_LOGGER.set_log_level("INFO"); ::testing::InitGoogleTest(&argc, argv); int ret = 0; int time_sec = 0; - ObSimpleServerRestartHelper restart_helper(argc, argv, TEST_FILE_NAME, BORN_CASE_NAME, - RESTART_CASE_NAME); + ObSimpleServerRestartHelper restart_helper(argc, argv, oceanbase::storage::TEST_FILE_NAME, oceanbase::storage::BORN_CASE_NAME, + oceanbase::storage::RESTART_CASE_NAME); restart_helper.set_sleep_sec(time_sec); restart_helper.run(); return ret; diff --git a/mittest/simple_server/storage_ha/test_transfer_complete_restart_without_mds_flush.cpp b/mittest/simple_server/storage_ha/test_transfer_complete_restart_without_mds_flush.cpp index 40691225e0..05e9212fcf 100644 --- a/mittest/simple_server/storage_ha/test_transfer_complete_restart_without_mds_flush.cpp +++ b/mittest/simple_server/storage_ha/test_transfer_complete_restart_without_mds_flush.cpp @@ -29,7 +29,7 @@ #include "storage/tablet/ob_tablet.h" #include "storage/tx_storage/ob_ls_service.h" -using namespace unittest; +using namespace oceanbase::unittest; namespace oceanbase { @@ -210,9 +210,14 @@ TEST_F(TestTransferHandler, prepare_valid_data) sql.reset(); ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("select object_id from oceanbase.DBA_OBJECTS where OBJECT_NAME='ttt2'")); ASSERT_EQ(OB_SUCCESS, read_sql(sql_proxy2, sql, g_batch_part_list)); + + //create other ls by cluster table + sql.reset(); + ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("create table part_table_with_dup(c1 int) duplicate_scope = 'CLUSTER' partition by hash(c1) partitions 4")); + ASSERT_EQ(OB_SUCCESS, sql_proxy2.write(sql.ptr(), affected_rows)); } -TEST_F(TestTransferHandler, test_transfer_1001_to_1_with_transfer_finish_without_mds_flush) +TEST_F(TestTransferHandler, test_transfer_1001_to_1002_with_transfer_finish_without_mds_flush) { int ret = OB_SUCCESS; ObMySQLProxy &inner_sql_proxy = get_curr_observer().get_mysql_proxy(); @@ -233,12 +238,12 @@ TEST_F(TestTransferHandler, test_transfer_1001_to_1_with_transfer_finish_without ObTenantTransferService *tenant_transfer = MTL(ObTenantTransferService*); ASSERT_TRUE(OB_NOT_NULL(tenant_transfer)); - //title: 1001 ls transfer to 1 ls + //title: 1001 ls transfer to 1002 ls // generate transfer task ObTransferTaskID task_id; ObMySQLTransaction trans; ASSERT_EQ(OB_SUCCESS, trans.start(&inner_sql_proxy, g_tenant_id)); - ASSERT_EQ(OB_SUCCESS, tenant_transfer->generate_transfer_task(trans, ObLSID(1001), ObLSID(1), + ASSERT_EQ(OB_SUCCESS, tenant_transfer->generate_transfer_task(trans, ObLSID(1001), ObLSID(1002), g_part_list, ObBalanceTaskID(123), task_id)); if (trans.is_started()) { int tmp_ret = OB_SUCCESS; @@ -271,13 +276,13 @@ TEST_F(TestTransferRestart, observer_restart_when_transfer_finish_without_flush) } // namespace oceanbase int main(int argc, char **argv) { - unittest::init_log_and_gtest(argc, argv); + oceanbase::unittest::init_log_and_gtest(argc, argv); OB_LOGGER.set_log_level("INFO"); ::testing::InitGoogleTest(&argc, argv); int ret = 0; int time_sec = 0; - ObSimpleServerRestartHelper restart_helper(argc, argv, TEST_FILE_NAME, BORN_CASE_NAME, - RESTART_CASE_NAME); + ObSimpleServerRestartHelper restart_helper(argc, argv, oceanbase::storage::TEST_FILE_NAME, oceanbase::storage::BORN_CASE_NAME, + oceanbase::storage::RESTART_CASE_NAME); restart_helper.set_sleep_sec(time_sec); restart_helper.run(); return ret; diff --git a/mittest/simple_server/storage_ha/test_transfer_doing_stage_restart_with_mds_flush.cpp b/mittest/simple_server/storage_ha/test_transfer_doing_stage_restart_with_mds_flush.cpp index 04bc64603c..76df827548 100644 --- a/mittest/simple_server/storage_ha/test_transfer_doing_stage_restart_with_mds_flush.cpp +++ b/mittest/simple_server/storage_ha/test_transfer_doing_stage_restart_with_mds_flush.cpp @@ -29,7 +29,7 @@ #include "storage/tablet/ob_tablet.h" #include "storage/tx_storage/ob_ls_service.h" -using namespace unittest; +using namespace oceanbase::unittest; namespace oceanbase { @@ -277,13 +277,13 @@ TEST_F(TestTransferRestart, observer_restart_when_transfer_start_without_flush) } // namespace oceanbase int main(int argc, char **argv) { - unittest::init_log_and_gtest(argc, argv); + oceanbase::unittest::init_log_and_gtest(argc, argv); OB_LOGGER.set_log_level("INFO"); ::testing::InitGoogleTest(&argc, argv); int ret = 0; int time_sec = 0; - ObSimpleServerRestartHelper restart_helper(argc, argv, TEST_FILE_NAME, BORN_CASE_NAME, - RESTART_CASE_NAME); + ObSimpleServerRestartHelper restart_helper(argc, argv, oceanbase::storage::TEST_FILE_NAME, oceanbase::storage::BORN_CASE_NAME, + oceanbase::storage::RESTART_CASE_NAME); restart_helper.set_sleep_sec(time_sec); restart_helper.run(); return ret; diff --git a/mittest/simple_server/storage_ha/test_transfer_doing_stage_restart_without_mds_flush.cpp b/mittest/simple_server/storage_ha/test_transfer_doing_stage_restart_without_mds_flush.cpp index c0e843820a..0697170683 100644 --- a/mittest/simple_server/storage_ha/test_transfer_doing_stage_restart_without_mds_flush.cpp +++ b/mittest/simple_server/storage_ha/test_transfer_doing_stage_restart_without_mds_flush.cpp @@ -29,7 +29,7 @@ #include "storage/tablet/ob_tablet.h" #include "storage/tx_storage/ob_ls_service.h" -using namespace unittest; +using namespace oceanbase::unittest; namespace oceanbase { @@ -209,9 +209,29 @@ TEST_F(TestTransferHandler, prepare_valid_data) sql.reset(); ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("select object_id from oceanbase.DBA_OBJECTS where OBJECT_NAME='ttt2'")); ASSERT_EQ(OB_SUCCESS, read_sql(sql_proxy2, sql, g_batch_part_list)); + + //create other ls by cluster table + sql.reset(); + ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("create table part_table_with_dup(c1 int) duplicate_scope = 'CLUSTER' partition by hash(c1) partitions 4")); + ASSERT_EQ(OB_SUCCESS, sql_proxy2.write(sql.ptr(), affected_rows)); + sql.reset(); + + ObMySQLProxy &inner_sql_proxy = get_curr_observer().get_mysql_proxy(); + ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("alter system set _enable_balance_kill_transaction = true tenant = 'tt1';")); + ASSERT_EQ(OB_SUCCESS, inner_sql_proxy.write(OB_SYS_TENANT_ID, sql.ptr(), affected_rows)); + usleep(100000); // wait for debug_sync_timeout to take effect + sql.reset(); + ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("alter system set _balance_wait_killing_transaction_end_threshold = '10s' tenant = 'tt1';")); + ASSERT_EQ(OB_SUCCESS, inner_sql_proxy.write(OB_SYS_TENANT_ID, sql.ptr(), affected_rows)); + + ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("alter system set _enable_balance_kill_transaction = true tenant = 'tt1';")); + ASSERT_EQ(OB_SUCCESS, inner_sql_proxy.write(OB_SYS_TENANT_ID, sql.ptr(), affected_rows)); + usleep(100000); // wait for debug_sync_timeout to take effect + sql.reset(); + } -TEST_F(TestTransferHandler, test_transfer_1_to_1001_with_transfer_doing_without_mds_flush) +TEST_F(TestTransferHandler, test_transfer_1001_to_1002_with_transfer_doing_without_mds_flush) { int ret = OB_SUCCESS; ObMySQLProxy &inner_sql_proxy = get_curr_observer().get_mysql_proxy(); @@ -238,12 +258,12 @@ TEST_F(TestTransferHandler, test_transfer_1_to_1001_with_transfer_doing_without_ ObTenantTransferService *tenant_transfer = MTL(ObTenantTransferService*); ASSERT_TRUE(OB_NOT_NULL(tenant_transfer)); - //title: 1001 ls transfer to 1 ls + //title: 1001 ls transfer to 1002 ls // generate transfer task ObTransferTaskID task_id; ObMySQLTransaction trans; ASSERT_EQ(OB_SUCCESS, trans.start(&inner_sql_proxy, g_tenant_id)); - ASSERT_EQ(OB_SUCCESS, tenant_transfer->generate_transfer_task(trans, ObLSID(1001), ObLSID(1), + ASSERT_EQ(OB_SUCCESS, tenant_transfer->generate_transfer_task(trans, ObLSID(1001), ObLSID(1002), g_part_list, ObBalanceTaskID(123), task_id)); if (trans.is_started()) { int tmp_ret = OB_SUCCESS; @@ -277,13 +297,13 @@ TEST_F(TestTransferRestart, observer_restart_when_transfer_doing_without_flush) } // namespace oceanbase int main(int argc, char **argv) { - unittest::init_log_and_gtest(argc, argv); + oceanbase::unittest::init_log_and_gtest(argc, argv); OB_LOGGER.set_log_level("INFO"); ::testing::InitGoogleTest(&argc, argv); int ret = 0; int time_sec = 0; - ObSimpleServerRestartHelper restart_helper(argc, argv, TEST_FILE_NAME, BORN_CASE_NAME, - RESTART_CASE_NAME); + ObSimpleServerRestartHelper restart_helper(argc, argv, oceanbase::storage::TEST_FILE_NAME, oceanbase::storage::BORN_CASE_NAME, + oceanbase::storage::RESTART_CASE_NAME); restart_helper.set_sleep_sec(time_sec); restart_helper.run(); return ret; diff --git a/mittest/simple_server/storage_ha/test_transfer_handler.cpp b/mittest/simple_server/storage_ha/test_transfer_handler.cpp index ba36a1b6eb..c77ffcca84 100644 --- a/mittest/simple_server/storage_ha/test_transfer_handler.cpp +++ b/mittest/simple_server/storage_ha/test_transfer_handler.cpp @@ -27,7 +27,7 @@ #include "storage/tablet/ob_tablet.h" #include "storage/tx_storage/ob_ls_service.h" -using namespace unittest; +using namespace oceanbase::unittest; namespace oceanbase { @@ -208,7 +208,8 @@ int TestTransferHandler::wait_transfer_out_deleted_tablet_gc( while (OB_SUCC(ret) && index < task.tablet_list_.count()) { ObTabletHandle tablet_handle; const ObTransferTabletInfo &transfer_info = task.tablet_list_.at(index); - if (OB_FAIL(ls->get_tablet(transfer_info.tablet_id_, tablet_handle, ObMDSGetTabletMode::READ_WITHOUT_CHECK))) { + if (OB_FAIL(ls->get_tablet(transfer_info.tablet_id_, tablet_handle, + ObTabletCommon::DEFAULT_GET_TABLET_DURATION_US, ObMDSGetTabletMode::READ_WITHOUT_CHECK))) { if (OB_TABLET_NOT_EXIST == ret) { ret = OB_SUCCESS; index++; @@ -263,9 +264,32 @@ TEST_F(TestTransferHandler, prepare_valid_data) sql.reset(); ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("select object_id from oceanbase.DBA_OBJECTS where OBJECT_NAME='ttt2'")); ASSERT_EQ(OB_SUCCESS, read_sql(sql_proxy, sql, g_batch_part_list)); + + //create other ls by cluster table + sql.reset(); + ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("create table part_table_with_dup(c1 int) duplicate_scope = 'CLUSTER' partition by hash(c1) partitions 4")); + ASSERT_EQ(OB_SUCCESS, sql_proxy.write(sql.ptr(), affected_rows)); + sql.reset(); + ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("select object_id from oceanbase.DBA_OBJECTS where OBJECT_NAME='ttt2'")); + ASSERT_EQ(OB_SUCCESS, read_sql(sql_proxy, sql, g_batch_part_list)); + + + ObMySQLProxy &inner_sql_proxy = get_curr_observer().get_mysql_proxy(); + ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("alter system set _enable_balance_kill_transaction = true tenant = 'tt1';")); + ASSERT_EQ(OB_SUCCESS, inner_sql_proxy.write(OB_SYS_TENANT_ID, sql.ptr(), affected_rows)); + usleep(100000); // wait for debug_sync_timeout to take effect + sql.reset(); + ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("alter system set _balance_wait_killing_transaction_end_threshold = '10s' tenant = 'tt1';")); + ASSERT_EQ(OB_SUCCESS, inner_sql_proxy.write(OB_SYS_TENANT_ID, sql.ptr(), affected_rows)); + + ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("alter system set _enable_balance_kill_transaction = true tenant = 'tt1';")); + ASSERT_EQ(OB_SUCCESS, inner_sql_proxy.write(OB_SYS_TENANT_ID, sql.ptr(), affected_rows)); + usleep(100000); // wait for debug_sync_timeout to take effect + sql.reset(); + } -TEST_F(TestTransferHandler, test_transfer_1001_to_1) +TEST_F(TestTransferHandler, test_transfer_1001_to_1002) { int ret = OB_SUCCESS; ObMySQLProxy &inner_sql_proxy = get_curr_observer().get_mysql_proxy(); @@ -286,12 +310,12 @@ TEST_F(TestTransferHandler, test_transfer_1001_to_1) ObTenantTransferService *tenant_transfer = MTL(ObTenantTransferService*); ASSERT_TRUE(OB_NOT_NULL(tenant_transfer)); - //title: 1001 ls transfer to 1 ls + //title: 1001 ls transfer to 1002 ls // generate transfer task ObTransferTaskID task_id; ObMySQLTransaction trans; ASSERT_EQ(OB_SUCCESS, trans.start(&inner_sql_proxy, g_tenant_id)); - ASSERT_EQ(OB_SUCCESS, tenant_transfer->generate_transfer_task(trans, ObLSID(1001), ObLSID(1), + ASSERT_EQ(OB_SUCCESS, tenant_transfer->generate_transfer_task(trans, ObLSID(1001), ObLSID(1002), g_part_list, ObBalanceTaskID(123), task_id)); if (trans.is_started()) { int tmp_ret = OB_SUCCESS; @@ -311,7 +335,7 @@ TEST_F(TestTransferHandler, test_transfer_1001_to_1) ASSERT_EQ(OB_SUCCESS, wait_transfer_out_deleted_tablet_gc(task)); } -TEST_F(TestTransferHandler, test_transfer_1_to_1001) +TEST_F(TestTransferHandler, test_transfer_1002_to_1001) { int ret = OB_SUCCESS; ObMySQLProxy &inner_sql_proxy = get_curr_observer().get_mysql_proxy(); @@ -325,12 +349,12 @@ TEST_F(TestTransferHandler, test_transfer_1_to_1001) ObTenantTransferService *tenant_transfer = MTL(ObTenantTransferService*); ASSERT_TRUE(OB_NOT_NULL(tenant_transfer)); - //title: 1001 ls transfer to 1 ls + //title: 1002 ls transfer to 1001 ls // generate transfer task ObTransferTaskID task_id; ObMySQLTransaction trans; ASSERT_EQ(OB_SUCCESS, trans.start(&inner_sql_proxy, g_tenant_id)); - ASSERT_EQ(OB_SUCCESS, tenant_transfer->generate_transfer_task(trans, ObLSID(1), ObLSID(1001), + ASSERT_EQ(OB_SUCCESS, tenant_transfer->generate_transfer_task(trans, ObLSID(1002), ObLSID(1001), g_part_list, ObBalanceTaskID(123), task_id)); if (trans.is_started()) { int tmp_ret = OB_SUCCESS; @@ -353,7 +377,7 @@ TEST_F(TestTransferHandler, test_transfer_1_to_1001) } // namespace oceanbase int main(int argc, char **argv) { - unittest::init_log_and_gtest(argc, argv); + oceanbase::unittest::init_log_and_gtest(argc, argv); OB_LOGGER.set_log_level("INFO"); ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); diff --git a/mittest/simple_server/storage_ha/test_transfer_start_stage_restart_without_mds_flush.cpp b/mittest/simple_server/storage_ha/test_transfer_start_stage_restart_without_mds_flush.cpp index 85c54bf340..aa2681c00a 100644 --- a/mittest/simple_server/storage_ha/test_transfer_start_stage_restart_without_mds_flush.cpp +++ b/mittest/simple_server/storage_ha/test_transfer_start_stage_restart_without_mds_flush.cpp @@ -29,7 +29,7 @@ #include "storage/tablet/ob_tablet.h" #include "storage/tx_storage/ob_ls_service.h" -using namespace unittest; +using namespace oceanbase::unittest; namespace oceanbase { @@ -209,6 +209,7 @@ TEST_F(TestTransferHandler, prepare_valid_data) sql.reset(); ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("select object_id from oceanbase.DBA_OBJECTS where OBJECT_NAME='ttt2'")); ASSERT_EQ(OB_SUCCESS, read_sql(sql_proxy2, sql, g_batch_part_list)); + } TEST_F(TestTransferHandler, test_transfer_1001_to_1_with_transfer_start_without_mds_flush) @@ -276,13 +277,13 @@ TEST_F(TestTransferRestart, observer_restart_when_transfer_start_without_flush) } // namespace oceanbase int main(int argc, char **argv) { - unittest::init_log_and_gtest(argc, argv); + oceanbase::unittest::init_log_and_gtest(argc, argv); OB_LOGGER.set_log_level("INFO"); ::testing::InitGoogleTest(&argc, argv); int ret = 0; int time_sec = 0; - ObSimpleServerRestartHelper restart_helper(argc, argv, TEST_FILE_NAME, BORN_CASE_NAME, - RESTART_CASE_NAME); + ObSimpleServerRestartHelper restart_helper(argc, argv, oceanbase::storage::TEST_FILE_NAME, oceanbase::storage::BORN_CASE_NAME, + oceanbase::storage::RESTART_CASE_NAME); restart_helper.set_sleep_sec(time_sec); restart_helper.run(); return ret; diff --git a/mittest/simple_server/storage_ha/test_transfer_with_empty_shell.cpp b/mittest/simple_server/storage_ha/test_transfer_with_empty_shell.cpp index 6596203bfb..e059dd030b 100644 --- a/mittest/simple_server/storage_ha/test_transfer_with_empty_shell.cpp +++ b/mittest/simple_server/storage_ha/test_transfer_with_empty_shell.cpp @@ -27,7 +27,7 @@ #include "storage/tablet/ob_tablet.h" #include "storage/tx_storage/ob_ls_service.h" -using namespace unittest; +using namespace oceanbase::unittest; namespace oceanbase { @@ -209,7 +209,8 @@ int TestTransferHandler::wait_transfer_out_deleted_tablet_become_empty_shell( ObTabletHandle tablet_handle; ObTablet *tablet = nullptr; const ObTransferTabletInfo &transfer_info = task.tablet_list_.at(index); - if (OB_FAIL(ls->get_tablet(transfer_info.tablet_id_, tablet_handle, ObTabletCommon::NO_CHECK_GET_TABLET_TIMEOUT_US))) { + if (OB_FAIL(ls->get_tablet(transfer_info.tablet_id_, tablet_handle, ObTabletCommon::DEFAULT_GET_TABLET_DURATION_US, + ObMDSGetTabletMode::READ_WITHOUT_CHECK))) { LOG_WARN("failed to get tablet", K(ret), K(transfer_info)); } else if (OB_ISNULL(tablet = tablet_handle.get_obj())) { ret = OB_ERR_UNEXPECTED; @@ -262,9 +263,14 @@ TEST_F(TestTransferHandler, prepare_valid_data) sql.reset(); ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("select object_id from oceanbase.DBA_OBJECTS where OBJECT_NAME='ttt2'")); ASSERT_EQ(OB_SUCCESS, read_sql(sql_proxy, sql, g_batch_part_list)); + + //create other ls by cluster table + sql.reset(); + ASSERT_EQ(OB_SUCCESS, sql.assign_fmt("create table part_table_with_dup(c1 int) duplicate_scope = 'CLUSTER' partition by hash(c1) partitions 4")); + ASSERT_EQ(OB_SUCCESS, sql_proxy.write(sql.ptr(), affected_rows)); } -TEST_F(TestTransferHandler, test_transfer_1001_to_1) +TEST_F(TestTransferHandler, test_transfer_1001_to_1002) { int ret = OB_SUCCESS; ObMySQLProxy &inner_sql_proxy = get_curr_observer().get_mysql_proxy(); @@ -285,12 +291,12 @@ TEST_F(TestTransferHandler, test_transfer_1001_to_1) ObTenantTransferService *tenant_transfer = MTL(ObTenantTransferService*); ASSERT_TRUE(OB_NOT_NULL(tenant_transfer)); - //title: 1001 ls transfer to 1 ls + //title: 1001 ls transfer to 1002 ls // generate transfer task ObTransferTaskID task_id; ObMySQLTransaction trans; ASSERT_EQ(OB_SUCCESS, trans.start(&inner_sql_proxy, g_tenant_id)); - ASSERT_EQ(OB_SUCCESS, tenant_transfer->generate_transfer_task(trans, ObLSID(1001), ObLSID(1), + ASSERT_EQ(OB_SUCCESS, tenant_transfer->generate_transfer_task(trans, ObLSID(1001), ObLSID(1002), g_part_list, ObBalanceTaskID(123), task_id)); if (trans.is_started()) { int tmp_ret = OB_SUCCESS; @@ -310,7 +316,7 @@ TEST_F(TestTransferHandler, test_transfer_1001_to_1) ASSERT_EQ(OB_SUCCESS, wait_transfer_out_deleted_tablet_become_empty_shell(task)); } -TEST_F(TestTransferHandler, test_transfer_1_to_1001) +TEST_F(TestTransferHandler, test_transfer_1002_to_1001) { int ret = OB_SUCCESS; ObMySQLProxy &inner_sql_proxy = get_curr_observer().get_mysql_proxy(); @@ -329,7 +335,7 @@ TEST_F(TestTransferHandler, test_transfer_1_to_1001) ObTransferTaskID task_id; ObMySQLTransaction trans; ASSERT_EQ(OB_SUCCESS, trans.start(&inner_sql_proxy, g_tenant_id)); - ASSERT_EQ(OB_SUCCESS, tenant_transfer->generate_transfer_task(trans, ObLSID(1), ObLSID(1001), + ASSERT_EQ(OB_SUCCESS, tenant_transfer->generate_transfer_task(trans, ObLSID(1002), ObLSID(1001), g_part_list, ObBalanceTaskID(123), task_id)); if (trans.is_started()) { int tmp_ret = OB_SUCCESS; @@ -350,7 +356,7 @@ TEST_F(TestTransferHandler, test_transfer_1_to_1001) } // namespace oceanbase int main(int argc, char **argv) { - unittest::init_log_and_gtest(argc, argv); + oceanbase::unittest::init_log_and_gtest(argc, argv); OB_LOGGER.set_log_level("INFO"); ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS();