You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by da...@apache.org on 2023/12/01 14:28:23 UTC

(doris) branch branch-2.0 updated: [fix](fe) Fix show frontends npt in some situations (#27295) (#27789)

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

dataroaring 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 1a82d5a27d5 [fix](fe) Fix show frontends npt in some situations (#27295) (#27789)
1a82d5a27d5 is described below

commit 1a82d5a27d5967f396418b67ee409b0098b29627
Author: Lei Zhang <27...@users.noreply.github.com>
AuthorDate: Fri Dec 1 22:28:17 2023 +0800

    [fix](fe) Fix show frontends npt in some situations (#27295) (#27789)
    
    ```
    java.lang.NullPointerException: null
        at com.sleepycat.je.rep.util.ReplicationGroupAdmin.getMasterSocket(ReplicationGroupAdmin.java:191)
        at com.sleepycat.je.rep.util.ReplicationGroupAdmin.doMessageExchange(ReplicationGroupAdmin.java:607)
        at com.sleepycat.je.rep.util.ReplicationGroupAdmin.getGroup(ReplicationGroupAdmin.java:406)
        at org.apache.doris.ha.BDBHA.getElectableNodes(BDBHA.java:132)
        at org.apache.doris.common.proc.FrontendsProcNode.getFrontendsInfo(FrontendsProcNode.java:84)
        at org.apache.doris.qe.ShowExecutor.handleShowFrontends(ShowExecutor.java:1923)
        at org.apache.doris.qe.ShowExecutor.execute(ShowExecutor.java:355)
        at org.apache.doris.qe.StmtExecutor.handleShow(StmtExecutor.java:2113)
        ...
    ```
---
 .../java/org/apache/doris/common/proc/FrontendsProcNode.java   |  1 -
 fe/fe-core/src/main/java/org/apache/doris/ha/BDBHA.java        | 10 ++++++----
 .../java/org/apache/doris/journal/bdbje/BDBEnvironment.java    |  5 +++++
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/proc/FrontendsProcNode.java b/fe/fe-core/src/main/java/org/apache/doris/common/proc/FrontendsProcNode.java
index a129bbd3386..a88315ee858 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/proc/FrontendsProcNode.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/proc/FrontendsProcNode.java
@@ -93,7 +93,6 @@ public class FrontendsProcNode implements ProcNodeInterface {
         }
 
         for (Frontend fe : env.getFrontends(null /* all */)) {
-
             List<String> info = new ArrayList<String>();
             info.add(fe.getNodeName());
             info.add(fe.getHost());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/ha/BDBHA.java b/fe/fe-core/src/main/java/org/apache/doris/ha/BDBHA.java
index 40de7329222..046bca5bac9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/ha/BDBHA.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/ha/BDBHA.java
@@ -104,11 +104,12 @@ public class BDBHA implements HAProtocol {
 
     @Override
     public List<InetSocketAddress> getObserverNodes() {
+        List<InetSocketAddress> ret = new ArrayList<InetSocketAddress>();
         ReplicationGroupAdmin replicationGroupAdmin = environment.getReplicationGroupAdmin();
         if (replicationGroupAdmin == null) {
-            return null;
+            return ret;
         }
-        List<InetSocketAddress> ret = new ArrayList<InetSocketAddress>();
+
         try {
             ReplicationGroup replicationGroup = replicationGroupAdmin.getGroup();
             for (ReplicationNode replicationNode : replicationGroup.getSecondaryNodes()) {
@@ -123,11 +124,12 @@ public class BDBHA implements HAProtocol {
 
     @Override
     public List<InetSocketAddress> getElectableNodes(boolean leaderIncluded) {
+        List<InetSocketAddress> ret = new ArrayList<InetSocketAddress>();
         ReplicationGroupAdmin replicationGroupAdmin = environment.getReplicationGroupAdmin();
         if (replicationGroupAdmin == null) {
-            return null;
+            return ret;
         }
-        List<InetSocketAddress> ret = new ArrayList<InetSocketAddress>();
+
         try {
             ReplicationGroup replicationGroup = replicationGroupAdmin.getGroup();
             for (ReplicationNode replicationNode : replicationGroup.getElectableNodes()) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBEnvironment.java b/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBEnvironment.java
index 650cdf98ca7..47405c5c50e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBEnvironment.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBEnvironment.java
@@ -212,6 +212,11 @@ public class BDBEnvironment {
                 .filter(Frontend::isAlive)
                 .map(fe -> new InetSocketAddress(fe.getHost(), fe.getEditLogPort()))
                 .collect(Collectors.toSet());
+
+        if (addresses.isEmpty()) {
+            LOG.info("addresses is empty");
+            return null;
+        }
         return new ReplicationGroupAdmin(PALO_JOURNAL_GROUP, addresses);
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org