From 7d7c359efce2d2f580353eff9c141f1a741eeee0 Mon Sep 17 00:00:00 2001 From: Calvin Neo Date: Fri, 30 Aug 2024 10:56:12 +0800 Subject: [PATCH 1/4] a Signed-off-by: Calvin Neo --- dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp b/dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp index 400e75f59cf..1913583b696 100644 --- a/dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp +++ b/dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp @@ -223,6 +223,10 @@ String S3LockLocalManager::createS3Lock( } else { + if unlikely (s3lock_client == nullptr) + { + throw Exception(ErrorCodes::LOGICAL_ERROR, "S3 Lock Client is not initialized"); + } // Try to create a lock file for the data file created by another store. // e.g. Ingest some pages from CheckpointDataFile or DTFile when doing FAP, // send rpc to S3LockService From 0e6b6772a17d5739e5573e6b5022b42e6c722cd3 Mon Sep 17 00:00:00 2001 From: Calvin Neo Date: Fri, 30 Aug 2024 11:45:29 +0800 Subject: [PATCH 2/4] Update dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp Co-authored-by: jinhelin --- dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp b/dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp index 1913583b696..104904b4c0b 100644 --- a/dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp +++ b/dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp @@ -223,10 +223,7 @@ String S3LockLocalManager::createS3Lock( } else { - if unlikely (s3lock_client == nullptr) - { - throw Exception(ErrorCodes::LOGICAL_ERROR, "S3 Lock Client is not initialized"); - } + RUNTIME_CHECK_MSG(s3lock_client, "S3 Lock Client is not initialized"); // Try to create a lock file for the data file created by another store. // e.g. Ingest some pages from CheckpointDataFile or DTFile when doing FAP, // send rpc to S3LockService From 879dfa0567cadf81bd21f1b821ae9dad2a46f5e9 Mon Sep 17 00:00:00 2001 From: Calvin Neo Date: Mon, 2 Sep 2024 12:28:40 +0800 Subject: [PATCH 3/4] a Signed-off-by: Calvin Neo --- dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp b/dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp index 1913583b696..1ac0dc06747 100644 --- a/dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp +++ b/dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp @@ -96,6 +96,8 @@ std::optional S3LockLocalManager::initStore } s3lock_client = std::move(s3lock_client_); + RUNTIME_CHECK(s3lock_client != nullptr); + store_id = actual_store_id; LOG_INFO( @@ -223,10 +225,7 @@ String S3LockLocalManager::createS3Lock( } else { - if unlikely (s3lock_client == nullptr) - { - throw Exception(ErrorCodes::LOGICAL_ERROR, "S3 Lock Client is not initialized"); - } + RUNTIME_CHECK_MSG(s3lock_client, "S3 Lock Client is not initialized"); // Try to create a lock file for the data file created by another store. // e.g. Ingest some pages from CheckpointDataFile or DTFile when doing FAP, // send rpc to S3LockService From 736327f7425fac77dd2bcc691c92d8fa10b19d7b Mon Sep 17 00:00:00 2001 From: Calvin Neo Date: Mon, 2 Sep 2024 15:01:24 +0800 Subject: [PATCH 4/4] a Signed-off-by: Calvin Neo --- dbms/src/Flash/Disaggregated/S3LockClient.cpp | 1 + dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/dbms/src/Flash/Disaggregated/S3LockClient.cpp b/dbms/src/Flash/Disaggregated/S3LockClient.cpp index 541f225875a..0bab6faffc1 100644 --- a/dbms/src/Flash/Disaggregated/S3LockClient.cpp +++ b/dbms/src/Flash/Disaggregated/S3LockClient.cpp @@ -177,6 +177,7 @@ String S3LockClient::updateOwnerAddr(const Timepoint & deadline, const LoggerPtr using namespace std::chrono_literals; while (true) { + RUNTIME_CHECK(s3gc_owner != nullptr); auto owner_info = s3gc_owner->getOwnerID(); switch (owner_info.status) { diff --git a/dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp b/dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp index 1ac0dc06747..153cbe2c955 100644 --- a/dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp +++ b/dbms/src/Storages/Page/V3/Universal/S3LockLocalManager.cpp @@ -96,7 +96,10 @@ std::optional S3LockLocalManager::initStore } s3lock_client = std::move(s3lock_client_); - RUNTIME_CHECK(s3lock_client != nullptr); + if unlikely (s3lock_client == nullptr) + { + LOG_INFO(log, "S3 lock manager has null s3lock client"); + } store_id = actual_store_id;