This is an automated email from the ASF dual-hosted git repository. zyk pushed a commit to branch rc/1.1.0 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 2a238150d7caca5fb312e8b1166371ab878aaa5b Author: Marcos_Zyk <[email protected]> AuthorDate: Fri Mar 17 10:04:26 2023 +0800 [To rel/1.1][IOTDB-5685] Fix error msg of failing to create a timeseries on an existing path when ReadOnly state (#9354) --- .../db/mpp/execution/executor/RegionWriteExecutor.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/executor/RegionWriteExecutor.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/executor/RegionWriteExecutor.java index 69ca7a4f3b..1d4d1a7c1c 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/executor/RegionWriteExecutor.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/executor/RegionWriteExecutor.java @@ -20,6 +20,7 @@ package org.apache.iotdb.db.mpp.execution.executor; import org.apache.iotdb.common.rpc.thrift.TSStatus; +import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.consensus.ConsensusGroupId; import org.apache.iotdb.commons.consensus.DataRegionId; import org.apache.iotdb.commons.consensus.SchemaRegionId; @@ -147,6 +148,16 @@ public class RegionWriteExecutor { public RegionExecutionResult visitPlan(PlanNode node, WritePlanNodeExecutionContext context) { RegionExecutionResult response = new RegionExecutionResult(); + if (CommonDescriptor.getInstance().getConfig().isReadOnly()) { + response.setAccepted(false); + response.setMessage("Fail to do non-query operations because system is read-only."); + response.setStatus( + RpcUtils.getStatus( + TSStatusCode.SYSTEM_READ_ONLY, + "Fail to do non-query operations because system is read-only.")); + return response; + } + ConsensusWriteResponse writeResponse = executePlanNodeInConsensusLayer(context.getRegionId(), node); // TODO need consider more status @@ -161,7 +172,9 @@ public class RegionWriteExecutor { writeResponse.getException()); response.setAccepted(false); response.setMessage(writeResponse.getException().toString()); - response.setStatus(RpcUtils.getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR)); + response.setStatus( + RpcUtils.getStatus( + TSStatusCode.EXECUTE_STATEMENT_ERROR, writeResponse.getErrorMessage())); } return response; }
