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 <[email protected]>
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;
}