This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new fdff4a643ad branch-2.0: [fix](create table) fix create table fail msg
#45623 (#45653)
fdff4a643ad is described below
commit fdff4a643ad3a0dfab1dba37abbfb7105907703f
Author: yujun <[email protected]>
AuthorDate: Fri Dec 20 10:59:30 2024 +0800
branch-2.0: [fix](create table) fix create table fail msg #45623 (#45653)
cherry pick from #45623
---
.../java/org/apache/doris/clone/TabletScheduler.java | 2 +-
.../src/main/java/org/apache/doris/system/Backend.java | 3 +++
.../org/apache/doris/system/SystemInfoService.java | 2 +-
.../java/org/apache/doris/catalog/CreateTableTest.java | 18 ++++++++++++++++++
4 files changed, 23 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 9dd4b22c436..43bb5bd4e9b 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
@@ -1444,7 +1444,7 @@ public class TabletScheduler extends MasterDaemon {
!allFitPathsSameMedium.isEmpty() ? allFitPathsSameMedium :
allFitPathsDiffMedium;
if (allFitPaths.isEmpty()) {
List<String> backendsInfo =
Env.getCurrentSystemInfo().getAllBackends().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 ae93b7faab6..1f51c2d16ff 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
@@ -27,6 +27,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;
@@ -270,6 +271,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 6b4c2bee09f..87d7fd5ce52 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
@@ -540,7 +540,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 15745a70071..7b6ad79253d 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
@@ -28,8 +28,10 @@ import org.apache.doris.common.DdlException;
import org.apache.doris.common.ExceptionChecker;
import org.apache.doris.common.UserException;
import org.apache.doris.qe.ConnectContext;
+import org.apache.doris.resource.Tag;
import org.apache.doris.utframe.UtFrameUtils;
+import com.google.common.collect.Maps;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
@@ -37,6 +39,7 @@ import org.junit.Test;
import java.io.File;
import java.util.HashSet;
+import java.util.Map;
import java.util.Set;
import java.util.UUID;
@@ -783,4 +786,19 @@ public class CreateTableTest {
Assert.assertEquals(1,
tb.getPartitionInfo().getReplicaAllocation(p1.getId()).getTotalReplicaNum());
Assert.assertEquals(1,
tb.getTableProperty().getReplicaAllocation().getTotalReplicaNum());
}
+
+ @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={}]"));
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]