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]