This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 2a7c2e3f410 [fix](create table) fix create table fail msg (#45623)
2a7c2e3f410 is described below

commit 2a7c2e3f410a715ff9c22890de06d809fa411c52
Author: yujun <[email protected]>
AuthorDate: Thu Dec 19 15:47:50 2024 +0800

    [fix](create table) fix create table fail msg (#45623)
---
 .../java/org/apache/doris/clone/TabletScheduler.java    |  2 +-
 .../src/main/java/org/apache/doris/system/Backend.java  |  3 +++
 .../java/org/apache/doris/system/SystemInfoService.java |  2 +-
 .../java/org/apache/doris/catalog/CreateTableTest.java  | 17 +++++++++++++++++
 4 files changed, 22 insertions(+), 2 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/clone/TabletScheduler.java 
b/fe/fe-core/src/main/java/org/apache/doris/clone/TabletScheduler.java
index 504e1d36a65..1545236aa59 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/clone/TabletScheduler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/clone/TabletScheduler.java
@@ -1545,7 +1545,7 @@ public class TabletScheduler extends MasterDaemon {
                 !allFitPathsSameMedium.isEmpty() ? allFitPathsSameMedium : 
allFitPathsDiffMedium;
         if (allFitPaths.isEmpty()) {
             List<String> backendsInfo = 
Env.getCurrentSystemInfo().getAllClusterBackendsNoException().values().stream()
-                    .filter(be -> be.getLocationTag() == tag)
+                    .filter(be -> be.getLocationTag().equals(tag))
                     .map(Backend::getDetailsForCreateReplica)
                     .collect(Collectors.toList());
             throw new SchedException(Status.UNRECOVERABLE, 
String.format("unable to find dest path for new replica"
diff --git a/fe/fe-core/src/main/java/org/apache/doris/system/Backend.java 
b/fe/fe-core/src/main/java/org/apache/doris/system/Backend.java
index 974c0e0cae1..c864e1ba2ae 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/system/Backend.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/system/Backend.java
@@ -28,6 +28,7 @@ import org.apache.doris.common.io.Writable;
 import org.apache.doris.common.util.PrintableMap;
 import org.apache.doris.common.util.TimeUtils;
 import org.apache.doris.persist.gson.GsonUtils;
+import org.apache.doris.qe.SimpleScheduler;
 import org.apache.doris.resource.Tag;
 import org.apache.doris.system.HeartbeatResponse.HbStatus;
 import org.apache.doris.thrift.TDisk;
@@ -340,6 +341,8 @@ public class Backend implements Writable {
             sb.append(", isDecommissioned=true, exclude it");
         } else if (isComputeNode()) {
             sb.append(", isComputeNode=true, exclude it");
+        } else if (!Config.disable_backend_black_list && 
!SimpleScheduler.isAvailable(this)) {
+            sb.append(", is in black list, exclude it");
         } else {
             sb.append(", hdd disks count={");
             if (hddOk > 0) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/system/SystemInfoService.java 
b/fe/fe-core/src/main/java/org/apache/doris/system/SystemInfoService.java
index 447dc3457ae..f7359293621 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/system/SystemInfoService.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/system/SystemInfoService.java
@@ -567,7 +567,7 @@ public class SystemInfoService {
         StringBuilder sb = new StringBuilder(" Backends details: ");
         for (Tag tag : replicaAlloc.getAllocMap().keySet()) {
             sb.append("backends with tag ").append(tag).append(" is ");
-            sb.append(idToBackendRef.values().stream().filter(be -> 
be.getLocationTag() == tag)
+            sb.append(idToBackendRef.values().stream().filter(be -> 
be.getLocationTag().equals(tag))
                     .map(Backend::getDetailsForCreateReplica)
                     .collect(Collectors.toList()));
             sb.append(", ");
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateTableTest.java 
b/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateTableTest.java
index 50e9ac40bc7..76acb4ad76e 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateTableTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateTableTest.java
@@ -25,12 +25,15 @@ import org.apache.doris.common.DdlException;
 import org.apache.doris.common.ExceptionChecker;
 import org.apache.doris.common.FeConstants;
 import org.apache.doris.common.UserException;
+import org.apache.doris.resource.Tag;
 import org.apache.doris.utframe.TestWithFeService;
 
+import com.google.common.collect.Maps;
 import org.junit.Assert;
 import org.junit.jupiter.api.Test;
 
 import java.util.HashSet;
+import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
@@ -789,6 +792,20 @@ public class CreateTableTest extends TestWithFeService {
         }
     }
 
+    @Test
+    public void testCreateTableDetailMsg() throws Exception {
+        Map<Tag, Short> allocMap = Maps.newHashMap();
+        allocMap.put(Tag.create(Tag.TYPE_LOCATION, "group_a"),  (short) 6);
+        Assert.assertEquals(" Backends details: backends with tag 
{\"location\" : \"group_a\"} is [], ",
+                Env.getCurrentSystemInfo().getDetailsForCreateReplica(new 
ReplicaAllocation(allocMap)));
+
+        allocMap.clear();
+        allocMap.put(Tag.create(Tag.TYPE_LOCATION, new 
String(Tag.VALUE_DEFAULT_TAG)),  (short) 6);
+        String msg = Env.getCurrentSystemInfo().getDetailsForCreateReplica(new 
ReplicaAllocation(allocMap));
+        Assert.assertTrue("msg: " + msg, msg.contains("Backends details: 
backends with tag {\"location\" : \"default\"} is [[backendId=")
+                && msg.contains("hdd disks count={ok=1,}, ssd disk count={}], 
[backendId="));
+    }
+
     @Test
     public void testCreateTableWithMinLoadReplicaNum() throws Exception {
         ExceptionChecker.expectThrowsNoException(


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to