diff --git a/dbms/src/Storages/DeltaMerge/tests/gtest_dm_vector_index.cpp b/dbms/src/Storages/DeltaMerge/tests/gtest_dm_vector_index.cpp index bc6b603d5c0..3c35f7badb2 100644 --- a/dbms/src/Storages/DeltaMerge/tests/gtest_dm_vector_index.cpp +++ b/dbms/src/Storages/DeltaMerge/tests/gtest_dm_vector_index.cpp @@ -1726,6 +1726,7 @@ class VectorIndexSegmentOnS3Test TiFlashStorageTestBasic::SetUp(); auto & global_context = TiFlashTestEnv::getGlobalContext(); + global_context.getTMTContext().initS3GCManager(nullptr); global_context.getSharedContextDisagg()->initRemoteDataStore( global_context.getFileProvider(), diff --git a/dbms/src/Storages/KVStore/TMTContext.cpp b/dbms/src/Storages/KVStore/TMTContext.cpp index f2d9811ceca..4cad221e2f7 100644 --- a/dbms/src/Storages/KVStore/TMTContext.cpp +++ b/dbms/src/Storages/KVStore/TMTContext.cpp @@ -164,8 +164,7 @@ TMTContext::TMTContext( void TMTContext::initS3GCManager(const TiFlashRaftProxyHelper * proxy_helper) { - if (!raftproxy_config.pd_addrs.empty() && S3::ClientFactory::instance().isEnabled() - && !context.getSharedContextDisagg()->isDisaggregatedComputeMode()) + if (S3::ClientFactory::instance().isEnabled() && !context.getSharedContextDisagg()->isDisaggregatedComputeMode()) { kvstore->fetchProxyConfig(proxy_helper); if (kvstore->getProxyConfigSummay().valid) @@ -179,7 +178,7 @@ void TMTContext::initS3GCManager(const TiFlashRaftProxyHelper * proxy_helper) /*id*/ kvstore->getProxyConfigSummay().engine_addr, etcd_client); } - else + else if (!raftproxy_config.pd_addrs.empty()) { LOG_INFO( Logger::get(), @@ -188,6 +187,15 @@ void TMTContext::initS3GCManager(const TiFlashRaftProxyHelper * proxy_helper) s3gc_owner = OwnerManager::createS3GCOwner(context, /*id*/ raftproxy_config.advertise_engine_addr, etcd_client); } + else + { +#ifdef DBMS_PUBLIC_GTEST + s3gc_owner = OwnerManager::createMockOwner("mocked"); +#else + LOG_INFO(Logger::get(), "quit init s3 gc manager, no effective pd addr"); + return; +#endif + } s3gc_owner->campaignOwner(); // start campaign s3lock_client = std::make_shared(cluster.get(), s3gc_owner); diff --git a/dbms/src/Storages/Page/V3/Universal/UniversalPageStorageService.cpp b/dbms/src/Storages/Page/V3/Universal/UniversalPageStorageService.cpp index 432281db324..9cc62fb0c98 100644 --- a/dbms/src/Storages/Page/V3/Universal/UniversalPageStorageService.cpp +++ b/dbms/src/Storages/Page/V3/Universal/UniversalPageStorageService.cpp @@ -155,6 +155,12 @@ bool UniversalPageStorageService::uploadCheckpoint() return false; } auto s3lock_client = tmt.getS3LockClient(); + if (s3lock_client == nullptr) + { + LOG_INFO(log, "Skip checkpoint because s3lock_client is not initialized"); + return false; + } + const bool force_upload = upload_all_at_next_upload.load(); bool upload_done = uploadCheckpointImpl(store_info, s3lock_client, remote_store, force_upload); if (force_upload && upload_done)