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

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

commit 5d2b011a8df213b98dda7a900555369902f88155
Author: qiye <jianliang5...@gmail.com>
AuthorDate: Fri Jan 26 21:11:16 2024 +0800

    [fix](ES catalog) throw exception when ES meta track failed (#30409)
---
 .../src/main/java/org/apache/doris/catalog/EsTable.java      |  7 ++++---
 .../doris/external/elasticsearch/EsMetaStateTracker.java     | 12 +++++++++++-
 .../src/main/java/org/apache/doris/planner/EsScanNode.java   |  2 +-
 3 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/EsTable.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/EsTable.java
index a06da2af053..a29c547fa97 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/EsTable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/EsTable.java
@@ -18,6 +18,7 @@
 package org.apache.doris.catalog;
 
 import org.apache.doris.common.DdlException;
+import org.apache.doris.common.UserException;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.external.elasticsearch.EsMetaStateTracker;
 import org.apache.doris.external.elasticsearch.EsRestClient;
@@ -140,15 +141,15 @@ public class EsTable extends Table {
         super(id, name, tableType, schema);
     }
 
-    public Map<String, String> fieldsContext() {
+    public Map<String, String> fieldsContext() throws UserException {
         return esMetaStateTracker.searchContext().fetchFieldsContext();
     }
 
-    public Map<String, String> docValueContext() {
+    public Map<String, String> docValueContext() throws UserException {
         return esMetaStateTracker.searchContext().docValueFieldsContext();
     }
 
-    public List<String> needCompatDateFields() {
+    public List<String> needCompatDateFields() throws UserException {
         return esMetaStateTracker.searchContext().needCompatDateFields();
     }
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/EsMetaStateTracker.java
 
b/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/EsMetaStateTracker.java
index 0b556e46c62..d3b1539df6f 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/EsMetaStateTracker.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/EsMetaStateTracker.java
@@ -18,6 +18,10 @@
 package org.apache.doris.external.elasticsearch;
 
 import org.apache.doris.catalog.EsTable;
+import org.apache.doris.common.UserException;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 import java.util.LinkedList;
 import java.util.List;
@@ -32,6 +36,8 @@ import java.util.List;
  */
 public class EsMetaStateTracker {
 
+    private static final Logger LOG = 
LogManager.getLogger(EsMetaStateTracker.class);
+
     private List<SearchPhase> builtinSearchPhase = new LinkedList<>();
     private SearchContext searchContext;
 
@@ -41,7 +47,11 @@ public class EsMetaStateTracker {
         searchContext = new SearchContext(esTable);
     }
 
-    public SearchContext searchContext() {
+    public SearchContext searchContext() throws UserException {
+        if (searchContext == null) {
+            LOG.warn("ES meta state track failed, please check ES health 
status.");
+            throw new UserException("ES meta state track failed, please check 
ES health status.");
+        }
         return searchContext;
     }
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/EsScanNode.java 
b/fe/fe-core/src/main/java/org/apache/doris/planner/EsScanNode.java
index 5da04b1f813..16e6ed040b4 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/EsScanNode.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/EsScanNode.java
@@ -314,7 +314,7 @@ public class EsScanNode extends ExternalScanNode {
         return output.toString();
     }
 
-    private void buildQuery() {
+    private void buildQuery() throws UserException {
         if (conjuncts.isEmpty()) {
             queryBuilder = QueryBuilders.matchAllQuery();
         } else {


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

Reply via email to