You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ji...@apache.org on 2020/04/10 09:47:50 UTC

[incubator-iotdb] branch cluster_data_snapshot updated: sync leader when storage group is not found

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

jiangtian pushed a commit to branch cluster_data_snapshot
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git


The following commit(s) were added to refs/heads/cluster_data_snapshot by this push:
     new 84b9060  sync leader when storage group is not found
84b9060 is described below

commit 84b90601db3464fcbd6a22128867837c9e55513a
Author: jt2594838 <jt...@163.com>
AuthorDate: Fri Apr 10 17:47:38 2020 +0800

    sync leader when storage group is not found
---
 .../org/apache/iotdb/cluster/log/applier/BaseApplier.java   | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/log/applier/BaseApplier.java b/cluster/src/main/java/org/apache/iotdb/cluster/log/applier/BaseApplier.java
index cd1a147..b463799 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/log/applier/BaseApplier.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/log/applier/BaseApplier.java
@@ -27,6 +27,7 @@ import org.apache.iotdb.cluster.query.ClusterPlanExecutor;
 import org.apache.iotdb.cluster.server.member.MetaGroupMember;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
 import org.apache.iotdb.db.exception.metadata.PathNotExistException;
+import org.apache.iotdb.db.exception.metadata.StorageGroupNotSetException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.qp.executor.PlanExecutor;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
@@ -54,7 +55,14 @@ abstract class BaseApplier implements LogApplier {
     if (plan instanceof InsertPlan) {
       processInsertPlan((InsertPlan) plan);
     } else if (!plan.isQuery()) {
-      getQueryExecutor().processNonQuery(plan);
+      try {
+        getQueryExecutor().processNonQuery(plan);
+      } catch (QueryProcessException e) {
+        if (e.getCause() instanceof StorageGroupNotSetException) {
+          metaGroupMember.syncLeader();
+          getQueryExecutor().processNonQuery(plan);
+        }
+      }
     } else {
       // TODO-Cluster#348 support more types of logs
       logger.error("Unsupported physical plan: {}", plan);
@@ -78,6 +86,9 @@ abstract class BaseApplier implements LogApplier {
           throw new QueryProcessException(e1);
         }
         getQueryExecutor().processNonQuery(plan);
+      } else if (e.getCause() instanceof StorageGroupNotSetException) {
+        metaGroupMember.syncLeader();
+        getQueryExecutor().processNonQuery(plan);
       } else {
         throw e;
       }