From 0acd6436250e65528d02e88236a97fc8fb7b2da6 Mon Sep 17 00:00:00 2001 From: Siyang Tang Date: Thu, 31 Jul 2025 11:00:24 +0800 Subject: [PATCH 1/2] [fix](replica) Get tablet replica infos should return all primary backends except for warmup jobs --- .../doris/service/FrontendServiceImpl.java | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java index 0b0ea7e8ff3fc9..d24071ff0efc4e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java +++ b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java @@ -2804,23 +2804,30 @@ public TGetTabletReplicaInfosResult getTabletReplicaInfos(TGetTabletReplicaInfos LOG.warn("replica {} not normal", replica.getId()); continue; } - Backend backend; - if (Config.isCloudMode()) { - CloudReplica cloudReplica = (CloudReplica) replica; - backend = cloudReplica.getPrimaryBackend(clusterId); + List backends; + if (Config.isCloudMode() && request.isSetWarmUpJobId()) { + if (request.isSetWarmUpJobId()) { + CloudReplica cloudReplica = (CloudReplica) replica; + Backend primaryBackend = cloudReplica.getPrimaryBackend(clusterId); + backends = Lists.newArrayList(primaryBackend); + } else { + CloudReplica cloudReplica = (CloudReplica) replica; + backends = cloudReplica.getAllPrimaryBes(); + } } else { - backend = Env.getCurrentSystemInfo().getBackend(replica.getBackendIdWithoutException()); + Backend backend = Env.getCurrentSystemInfo().getBackend(replica.getBackendIdWithoutException()); + backends = Lists.newArrayList(backend); } - if (backend != null) { - TReplicaInfo replicaInfo = new TReplicaInfo(); - replicaInfo.setHost(backend.getHost()); - replicaInfo.setBePort(backend.getBePort()); - replicaInfo.setHttpPort(backend.getHttpPort()); - replicaInfo.setBrpcPort(backend.getBrpcPort()); - replicaInfo.setIsAlive(backend.isAlive()); - replicaInfo.setBackendId(backend.getId()); - replicaInfo.setReplicaId(replica.getId()); - replicaInfos.add(replicaInfo); + for (Backend backend : backends) { + if (backend != null) { + TReplicaInfo replicaInfo = new TReplicaInfo(); + replicaInfo.setHost(backend.getHost()); + replicaInfo.setBePort(backend.getBePort()); + replicaInfo.setHttpPort(backend.getHttpPort()); + replicaInfo.setBrpcPort(backend.getBrpcPort()); + replicaInfo.setReplicaId(replica.getId()); + replicaInfos.add(replicaInfo); + } } } tabletReplicaInfos.put(tabletId, replicaInfos); From dbe80135d635443451cea47c66516daf441abdf0 Mon Sep 17 00:00:00 2001 From: Siyang Tang Date: Thu, 31 Jul 2025 11:15:52 +0800 Subject: [PATCH 2/2] Update FrontendServiceImpl.java --- .../main/java/org/apache/doris/service/FrontendServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java index d24071ff0efc4e..cd2d497ae3211d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java +++ b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java @@ -2805,7 +2805,7 @@ public TGetTabletReplicaInfosResult getTabletReplicaInfos(TGetTabletReplicaInfos continue; } List backends; - if (Config.isCloudMode() && request.isSetWarmUpJobId()) { + if (Config.isCloudMode()) { if (request.isSetWarmUpJobId()) { CloudReplica cloudReplica = (CloudReplica) replica; Backend primaryBackend = cloudReplica.getPrimaryBackend(clusterId);