This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.1 by this push:
new 580bb658b71 branch-3.1: [chore](storage vault) Make
CacheHotspotManager exception msg more distinct #51861 (#52137)
580bb658b71 is described below
commit 580bb658b710f92c8d91d3ac5632d8b266ed682d
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Jun 24 10:47:45 2025 +0800
branch-3.1: [chore](storage vault) Make CacheHotspotManager exception msg
more distinct #51861 (#52137)
Cherry-picked from #51861
Co-authored-by: Lei Zhang <[email protected]>
---
.../src/main/java/org/apache/doris/cloud/CacheHotspotManager.java | 6 +++++-
.../java/org/apache/doris/cloud/CacheHotspotManagerUtils.java | 4 ++++
.../main/java/org/apache/doris/common/util/PropertyAnalyzer.java | 2 +-
regression-test/suites/vault_p0/alter/test_alter_s3_vault.groovy | 5 ++++-
.../vault_p0/concurent/test_create_vault_concurrently.groovy | 8 ++++----
5 files changed, 18 insertions(+), 7 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/cloud/CacheHotspotManager.java
b/fe/fe-core/src/main/java/org/apache/doris/cloud/CacheHotspotManager.java
index a05518a6ee2..1e86fda15db 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/cloud/CacheHotspotManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/cloud/CacheHotspotManager.java
@@ -124,12 +124,16 @@ public class CacheHotspotManager extends MasterDaemon {
jobDaemon.start();
startJobDaemon = true;
}
+
if (!tableCreated) {
try {
CacheHotspotManagerUtils.execCreateCacheTable();
tableCreated = true;
+ this.intervalMs =
Config.fetch_cluster_cache_hotspot_interval_ms;
} catch (Exception e) {
- LOG.warn("Create cache hot spot table failed", e);
+ // sleep 60s wait for syncing storage vault info from ms and
retry
+ this.intervalMs = 60000;
+ LOG.warn("Create cache hot spot table failed, sleep 60s and
retry", e);
return;
}
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/cloud/CacheHotspotManagerUtils.java
b/fe/fe-core/src/main/java/org/apache/doris/cloud/CacheHotspotManagerUtils.java
index ed2213e1208..cd295d9707b 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/cloud/CacheHotspotManagerUtils.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/cloud/CacheHotspotManagerUtils.java
@@ -216,11 +216,15 @@ public class CacheHotspotManagerUtils {
Database db =
Env.getCurrentInternalCatalog().getDbNullable(FeConstants.INTERNAL_DB_NAME);
if (db == null) {
LOG.warn("{} database doesn't exist",
FeConstants.INTERNAL_DB_NAME);
+ throw new Exception(
+ String.format("Database %s doesn't exist",
FeConstants.INTERNAL_DB_NAME));
}
Table t =
db.getTableNullable(FeConstants.INTERNAL_FILE_CACHE_HOTSPOT_TABLE_NAME);
if (t == null) {
LOG.warn("{} table doesn't exist",
FeConstants.INTERNAL_FILE_CACHE_HOTSPOT_TABLE_NAME);
+ throw new Exception(
+ String.format("Table %s doesn't exist",
FeConstants.INTERNAL_FILE_CACHE_HOTSPOT_TABLE_NAME));
}
INTERNAL_TABLE_ID = String.valueOf(t.getId());
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java
b/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java
index 1c12d2b106b..b873cd8e7cf 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java
@@ -1236,7 +1236,7 @@ public class PropertyAnalyzer {
} else {
// continue to check default vault
Pair<String, String> info =
Env.getCurrentEnv().getStorageVaultMgr().getDefaultStorageVault();
- if (info == null) {
+ if (info == null || Strings.isNullOrEmpty(info.first) ||
Strings.isNullOrEmpty(info.second)) {
throw new AnalysisException("No default storage vault."
+ " You can use `SHOW STORAGE VAULT` to get all
available vaults,"
+ " and pick one set default vault with `SET
<vault_name> AS DEFAULT STORAGE VAULT`");
diff --git a/regression-test/suites/vault_p0/alter/test_alter_s3_vault.groovy
b/regression-test/suites/vault_p0/alter/test_alter_s3_vault.groovy
index b9d6d1975cf..f20bdafef57 100644
--- a/regression-test/suites/vault_p0/alter/test_alter_s3_vault.groovy
+++ b/regression-test/suites/vault_p0/alter/test_alter_s3_vault.groovy
@@ -203,8 +203,11 @@ suite("test_alter_s3_vault", "nonConcurrent") {
for (int i = 0; i < vaultInfos.size(); i++) {
logger.info("vault info: ${vaultInfos[i]}")
if (vaultInfos[i][0].equals(s3VaultName)) {
+ // [s3_9f2c2f80a45c4fb48ad901f70675ffdf, 8, ctime: 1750217403
mtime: 1750217404 ak: "*******" sk: "xxxxxxx" bucket: "xxx" ...]
def newProperties = vaultInfos[i][2]
- assertTrue(properties.equals(newProperties), "Properties are not
the same")
+ def oldAkSkStr = properties.substring(properties.indexOf("ak:") +
3, properties.indexOf("bucket:") - 1)
+ def newAkSkStr =
newProperties.substring(newProperties.indexOf("ak:") + 3,
newProperties.indexOf("bucket:") - 1)
+ assertTrue(oldAkSkStr.equals(newAkSkStr), "Ak and Sk string are
not the same")
}
}
diff --git
a/regression-test/suites/vault_p0/concurent/test_create_vault_concurrently.groovy
b/regression-test/suites/vault_p0/concurent/test_create_vault_concurrently.groovy
index 985bf971e3a..86b01474c7d 100644
---
a/regression-test/suites/vault_p0/concurent/test_create_vault_concurrently.groovy
+++
b/regression-test/suites/vault_p0/concurent/test_create_vault_concurrently.groovy
@@ -35,7 +35,7 @@ suite("test_create_vault_concurrently", "nonConcurrent") {
def future1 = thread("threadName1") {
for (int i = 0; i < 100; i++) {
- sql """
+ try_sql """
CREATE STORAGE VAULT IF NOT EXISTS ${s3VaultName}
PROPERTIES (
"type"="S3",
@@ -55,7 +55,7 @@ suite("test_create_vault_concurrently", "nonConcurrent") {
def future2 = thread("threadName2") {
for (int i = 0; i < 100; i++) {
- sql """
+ try_sql """
CREATE STORAGE VAULT IF NOT EXISTS ${s3VaultName}
PROPERTIES (
"type"="S3",
@@ -75,7 +75,7 @@ suite("test_create_vault_concurrently", "nonConcurrent") {
def future3 = thread("threadName3") {
for (int i = 0; i < 100; i++) {
- sql """
+ try_sql """
CREATE STORAGE VAULT IF NOT EXISTS ${s3VaultName}
PROPERTIES (
"type"="S3",
@@ -95,7 +95,7 @@ suite("test_create_vault_concurrently", "nonConcurrent") {
def future4 = thread("threadName4") {
for (int i = 0; i < 100; i++) {
- sql """
+ try_sql """
CREATE STORAGE VAULT IF NOT EXISTS ${s3VaultName}
PROPERTIES (
"type"="S3",
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]